[Hibernate 3.2] Question au sujet du lazy loading
Bonjour,
J'utilise Hibernate 3.2 et j'ai une petite question au sujet du lazy-loading.
Voici un extrait du code qui me pose problème :
Code:
1 2 3 4 5 6 7 8 9
|
String query = "from Table";
Query hbQuery = getSession().createQuery(query);
List<HbTable> returnedList = hbQuery.list();
for(HbTable hbTable : returnedList){
Hibernate.initialize(hbTable.getColumn1());
Hibernate.initialize(hbTable.getColumn2());
} |
Je pensais qu'à la suite de l'exécution de ce code les objets correspondants seraient chargés et que je pourrais avoir accès à leur id simplement mais ce n'est pas le cas.
L'objet semble être chargé mais son id reste positionné à null.
Avec une requête fetch join cela marche.
Voici le code :
Code:
1 2 3 4 5
|
String query = "from Table left join fetch column1 left join fetch column2";
Query hbQuery = getSession().createQuery(query);
List<HbTable> returnedList = hbQuery.list(); |
Cela marche et je peux bien accéder aux objets des colonnes 1 et 2 et donc à leurs ids respectifs !
Quelqu'un saurait pourquoi dans le premier cas cela ne marche pas ? Peut être cela vient il d'une configuration Hibernate à mettre en place ?
Merci d'avance de votre aide.
Sylvain.