Bonjour à toutes et tous,
Je tente d'utiliser une query pour charger une collection dans une de mes classes. Pour ce faire j'ai définis ma query et je l'ai idinquée dans la balise <loader> de ma collection.
Malheureusement, lorsque hibernate démarre, j'obtiens une NullPointerException.
Voici mon mapping :
Et mon exception :
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 <joined-subclass name="be.me.Teacher" extends="be.me.User"> <key column="uid" /> <bag name="classes" lazy="false" table="teachers_courses_classes"> <key column="teacher" /> <many-to-many column="class" unique="true" class="be.me.SchoolClass" /> <loader query-ref="classes"/> </bag> </joined-subclass> <sql-query name="classes"> <load-collection alias="classes" role="be.me.Teacher.classes" /> SELECT DISTINCT {classes.*} FROM classes LEFT JOIN teachers_courses_classes ON teachers_courses_classes.class=classes.id WHERE teachers_courses_classes.teacher=:id </sql-query>
Etant donné que c'est la première fois que je tente d'utiliser une query personnalisée pour le chargement je suis assez perdu face à cette exeception.
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 Caused by: java.lang.NullPointerException at org.hibernate.loader.custom.sql.SQLQueryParser.resolveProperties(SQLQueryParser.java:205) at org.hibernate.loader.custom.sql.SQLQueryParser.resolveCollectionProperties(SQLQueryParser.java:158) at org.hibernate.loader.custom.sql.SQLQueryParser.substituteBrackets(SQLQueryParser.java:121) at org.hibernate.loader.custom.sql.SQLQueryParser.process(SQLQueryParser.java:74) at org.hibernate.loader.custom.sql.SQLCustomQuery.<init>(SQLCustomQuery.java:133) at org.hibernate.engine.query.NativeSQLQueryPlan.<init>(NativeSQLQueryPlan.java:67) at org.hibernate.engine.query.QueryPlanCache.getNativeSQLQueryPlan(QueryPlanCache.java:136) at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:476) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:384) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) ... 39 more
Merci pour votre aide.
Partager