Para entender mejor como se trae Hibernate la información
de la base de datos, podemos hablar de dos conceptos: “cuando”
se trae la información de la relación y “como”
se la trae (es decir que SQL utiliza).
Lazy :
Al especificar una relación en un mapeo de Hibernate
usaremos el atributo “lazy” para definir el “cuando”.
Por defecto lazy es igual a true. Esto significa que la
colección no se recupera de la base de datos hasta que se hace
alguna operación sobre ella.
Si fijamos lazy a false, cuando se recupere la
información de A también se traerá toda la
información de los objetos relacionados de B (este era el
comportamiento por defecto en la versión 2 de Hibernate).
Fetch :
Por defecto fetch es igual a select. Esto implica que
para recuperar cada objeto de B se lanzará una nueva consulta
a la base de datos.
Si fijamos el valor de fetch a join, en la misma consulta
que se recupera la información de A también se
recuperará la información de todos los objetos
relacionados de B. Esto se consigue con un left outer join
en la sentencia SQL. ( Más eficiente )
Información sacada de: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=hibernateJoin
Colecciones & Fetch & Lazy ( Hibernate )
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario