Estoy tratando de entender la diferencia entre LEFT JOIN y LEFT JOIN FETCH en modo de Hibernación.

¿Alguien puede explicar esto?

Gracias

InformationsquelleAutor Barry | 2011-07-27

2 Comentarios

  1. 56

    El «fetch» le dice a hibernate que carga ahora en lugar de dejar que estar cargado perezosamente. La guía de referencia tiene un todo el capítulo lidiar con esas cosas que es bueno estar familiarizado con.

  2. 3

    Puede utilizar FETCH para ajustar el rendimiento de la aplicación. Es uno de los ortogonal nociones de Hibernación, que la respuesta a la pregunta cómo (fetch estilo) la asociación se recupera. Hay 4 estilos: select /subselect /batch /join.

    La segunda noción es cuando (recuperación de temporización) debe ser recuperado. Se puede configurar con uno de los 6 propiedades definidas por Hibernate, donde la mayoría de las 4 propiedades: eager, lazy, extra lazy, proxy.(hibernate-core)

    Hibernate utiliza por defecto:

    • colección: perezoso selección
    • singe valores de asociación: perezoso proxy buscar

    Unirse

    JOIN o (LEFT JOIN) se sólo devolución de los objetos primarios.

    Join fetch

    JOIN FETCH (o LEFT JOIN FETCH) se recoger todas las asociaciones junto con su propietario del objeto. Lo que significa que la colección va a ser recuperada en el mismo seleccione. Esto puede ser demostrado por la habilitación de Hibernate estadísticas.

    Un (a la izquierda/exterior) join fetch es ideal para *Tono (muchos-a-uno o uno-a-uno) asociaciones. Se utiliza con los no-bolsas, pero ser conscientes de la cartesiano problema que puede ocurrir cuando las tablas’ cardinalidad es alta. Tenga en cuenta que un select recuperar el estilo es, en la mayoría de los actores más rápido.

    Nota que menos select declaraciones es sinónimo de menos viajes de ida y vuelta entre hibernar y la base de datos, pero no es sinónimo de un mejor rendimiento.

Dejar respuesta

Please enter your comment!
Please enter your name here