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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); }
L'objet semble être chargé mais son id reste positionné à null.
Avec une requête fetch join cela marche.
Voici le code :
Cela marche et je peux bien accéder aux objets des colonnes 1 et 2 et donc à leurs ids respectifs !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
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.
Partager