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

Hibernate + lazy collections

Estas en el tema de Hibernate + lazy collections en el foro de Java en Foros del Web. Hola. El problema que necesito resolver es el siguiente. Tengo un componente ToolBar que, posee caracteristicas para navegar registros, por medio de botones siguiente, anterior, ...
  #1 (permalink)  
Antiguo 18/01/2007, 06:50
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Exclamación Hibernate + lazy collections

Hola.

El problema que necesito resolver es el siguiente. Tengo un componente ToolBar que, posee caracteristicas para navegar registros, por medio de botones siguiente, anterior, primero, último. El tema es que necesito pasarle a mi componente toolBar una List, con los elementos que navegará. El tema es que como uso hibernate, quiero que la carga de los elementos sea Lazy, ya que es muy probable (90%) que contenga muchos datos!!! Bien lo que hago es indicar que la clase que quiero que navege sea Lazy pero, al parecer me esta cargando todos los objetos en la lista. Lo que hago es:


try{
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
java.util.List propietarios = (java.util.List) session.createQuery("from Propietario order by apellido,nombre").list();
session.getTransaction().commit();
barraNavegacion1.setResultSet(propietarios); /*Indico a mi componente cual es la coleccion a navegar */

} catch (Exception err) {
System.out.println("Error!");
err.printStackTrace();
}

Por lo que he leido, para poder utilizar carga bajo demanda, es necesario que la session que inicio la carga o la que realizo la consulta lazy, debe estar abierta.

Lo que he probado, es que todos los registros de mi base son cargados en la lista (propietarios), pero no de forma Lazy, pues ya cerre la conexion!!!! Por cierto uso Hibernate 3.2, MySql 5.0.

Bueno si pueden ayudarme a resolver este asunto lo agradeceria.

Otra cuestion que pense, pero no es adecuada a este problema, es que sea mi componente el que se encarge de cerrar la session. Pero, como es posible que la ventana (swing) se mantenga abierta. La session se deberia mantener abierta, por tiempo indeterminado.

Agradeceria alternativas.
  #2 (permalink)  
Antiguo 22/01/2007, 04:32
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Re: Hibernate + lazy collections

No hay forma de recuperar el resultado de la consulta en un resultSet, y que sea este el que se encargue de la busqueda lazy, ya que tengo entendido que algunos Drivers son capaces de hacerlo. Mas especificamente uno que se pueda navegar en ambos sentidos.
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 14:21.