Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/01/2011, 14:14
Avatar de nup_
nup_
 
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Java :: problema hibernate con lazy

Depende de varias cosas:

En mi caso uso fetch='join' (implica lazy=false) cuando las entidades q quiero traer de la BD tienen una relación con una única o pocas entidades. Ejemplo: atrticulo-estado_articulo, relaciones 1 a 1, etc.
Pero ten en cuenta q si tu entidad tiene varias relaciones y le pones fetch=join a todas, cuando vayas a traer esa entidad se va a ejecutar en la BD un join inmenso cuyo resultado va a traer muchos valores nulos. Para esos casos es mejor fetch=select y traer los resultados en varias consultas.

Para los casos q mi entidad pueda estar relacionada con cientos o miles de otras entidades lazy=true con fetch=select me ha servido hasta ahora sin problemas.

fetch=select te puede dar problemas si tu aplicación se conecta a un servidor de BD remoto y la latencia de la conexión es muy mala. Pero si tu BD está en la misma PC q tu aplicación o hay una buena conexión: no hay problemas.

FE DE ERRATA: en el post anterior te dije q
Cita:
Iniciado por nup_ Ver Mensaje
Código XML:
Ver original
  1. <many-to-one name="remitente" ... lazy="false"/>
De esta forma cuando cargues un objeto Mensaje no va a traer al usuario remitente. Solamente lo va a cargar cuando lo accedas.
En realidad es al revés lazy=true es la opción que te da ese comportamiento. No se como editar ese mensaje, de hecho no se si se pueda.

Espero haberte ayudado.

saludos;

Nup_