Je n'arrive pas a charger une collection avec une requete HQL simple, je debut en hibernate alors je dois bien avoir fait une erreur bete quelque part...
J'ai une BD contenant une table Cluster qui contient de champs ID, size, representant, et sessions. Le dernier étant une liste que je veut recupérer. Les collections ne sont pas fetché et le lazy reste a true parce que les données sont assez volumineuses et je veut pouvoir charger une liste de sessions contenue dans un cluster à la demande...
Voici le mapping de cluster :
Voici la partie ou est appelé la query :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="data"> <class name="Cluster" lazy="false"> <id name="id"> <generator class="native" /> </id> <property name="size"/> <many-to-one name="representant" not-null="true" cascade="all"/> <list name="sessions" lazy="false"> <key column="id"/> <index column="idx"/> <many-to-many unique="true" class="SessionCluster" /> </list> </class> <query name="cluster.parID"> <![CDATA[ from Cluster c where c.id=? ]]> </query> <query name="listSession.parID"> <![CDATA[ select c.sessions from Cluster c where c.id=? ]]> </query> </hibernate-mapping>
Cette partie est contenue dans un BeanCluster. J'instancie ce bean et japelle la methode ci dessus avec un ID que je connais pour récupérer ma liste de sessions. Mais je ne récupère qu'une liste vide....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public List<Session> getListSession(long id) { org.hibernate.Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); List<Session> listSession = session.getNamedQuery("listSessions.parID").setLong(0,id).list(); session.getTransaction().commit(); return listSession; }
Voila si qqun voit pourquoi merci de m'aider...
Partager