Foros del Web » Programación para mayores de 30 ;) » Java »

ejb war y jpa listas dependientes

Estas en el tema de ejb war y jpa listas dependientes en el foro de Java en Foros del Web. Buen dia Estoy aprendiendo JAVA y arranque con la tecnologia EJB + JPA y hasta ahora esta todo perfecto, trabajo con ORACLE y se conecta ...
  #1 (permalink)  
Antiguo 15/11/2013, 14:04
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
ejb war y jpa listas dependientes

Buen dia

Estoy aprendiendo JAVA y arranque con la tecnologia EJB + JPA y hasta ahora esta todo perfecto, trabajo con ORACLE y se conecta bien y carga los datos bien, he creado tres listas y he seguido varios ejemplos que he leido y en las explicaciones me dicen que debo crear un METODO para encadenar la lista uno con la lista dos.

Bien, pues ahi es donde no se que hacer, pego aqui los codigos (o parte de ellos) de la pagina que levanta los datos y de la que llena las listas....no se en donde debo crear el METODO para encadenar, cualquier ayuda como para salir de la patinada me sirve.

esta es la pagina xhtml que carga las listas (...bueno una parte)

<h:panelGrid id="pnGridSeleccion" columns="2" >
<h:outputLabel value="Ciudad: " style="font-weight: bold" />
<p:selectOneMenu value="#{inicioController.tableBeanModel.ciudad.co digo}" immediate="true">

<f:selectItem itemLabel="Ciudad" itemValue="" />
<f:selectItems value="#{tableBeanModel.localidad}" var="ciudad" itemLabel="#{ciudad.nombreCiudad}" itemValue="#{ciudad.codigo}"/>

</p:selectOneMenu>

<h:outputLabel value="Zonas: " style="font-weight: bold" />
<p:selectOneMenu value="#{inicioController.tableBeanModel.zonas.cod igoZonas}" immediate="true">

<f:selectItem itemLabel="Zonas" itemValue="" />
<f:selectItems value="#{tableBeanModel.listaDeZonas}" var="zonas" itemLabel="#{Zonas.nombreZonas}" itemValue="#{zonas.codigoZonas}"/>

</p:selectOneMenu>


-------este es el metodo que se esta conectando con jpa y llena las listas

@Override
public List<LfvZonas> consultarZonas() throws Throwable {

List<LfvZonas> listZonas = new ArrayList<>();

Query query = entityManager.createQuery("SELECT l FROM Zonas l where l.ciudad=:Ciudad");
try {
List results = query.getResultList();
listZonas = results;


} catch (Throwable e) {
String respuesta = "Error BD: ";
System.out.println(" ");
respuesta += e.getMessage();
e.printStackTrace();
}
return listZonas;
}


Las dos listas CIUDADES y ZONAS utilizan la misma tabla, Como hago para que al seleccionar un ciudad en la lista uno se actualice la lista 2, como selecciono el item seleccionado.


Gracias
  #2 (permalink)  
Antiguo 16/11/2013, 03:54
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: ejb war y jpa listas dependientes

Buenas intentaré ayudarte un poco.

Deberías utilizar el atributo valueChangeListener de p:selectOneMenu, sobre todo en el desplegable de ciudades, así cuando cambie el valor, podras recoger la ciudad escogida por el usuario, y buscar las zonas correspondientes a la ciudad.

En el método del ValueChangeListener deberás realizar la llamada a BBDD para buscar las zonas correspondientes (consultarZonas()).

No captures Throwable, estarías capturando no solo Exception, sino Error, algo que no es recomendable.

Extraído de la documetnación de oracle:

Código Java:
Ver original
  1. An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. The ThreadDeath error, though a "normal" condition, is also a subclass of Error because most applications should not try to catch it.

Evita en la medida de lo posible los System.out y los printStackTrace, son demasiado lentos, en su lugar utiliza log4j para mostrar errores en tu servidor de aplicaciones utilizando los niveles para informar de un warning(WARN), de un error (ERROR), de una traza informativa (INFO)...etc


Saludos.

Etiquetas: dependientes, ejb, html, jpa, listas, metodo, string, war
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:45.