Parmi les difficultés d'Hibernate est savoir différencié entre Fetch Type et Fetch Mode et combiné entre eux d'une facon optimal et efficace. Dans ce beiilet, je vais essayer de parler sur ces deux éléments :
- Fetch type (lazy/eager) : quand Hibernate chargera les associations, soit à l’avance en mode eager, soit à la demande en mode lazy.
- Fetch mode (select/subselect/join) comment Hibernate chargera les associations, par exemple est qu'il va utiliser des requêtes SELECT supplémentaire ou ou faut-il utiliser une jointure.
- Fetch Type EAGER
- Fetch Mode SELECT : Hibernate charge les éléments des collection grâce à des requêtes SELECT supplémentaires. L’exécution de ces requêtes se fait immédiatement après la première requête.
- Fetch Mode SUBSELECT : Comme le cas précédent mais au lieu des requêtes SELECT on utilise des requêtes Select imbriqué.
- Fetch Mode JOIN : Le mode join quand a lui concerne l'utilisation des jointure pour retrouver les éléments des assocations.
- Fetch Type LAZY
- Fetch Mode SELECT : Hibernate charge les éléments de la collection a la demande grâce a une requête SELECT supplémentaire
- Fetch Mode SUBSELECT : Pas de sens.
- Fetch Mode JOIN : Pas de sens.