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_
Código XML:
Ver original<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_