salut

j'utilise 2 classes associées entre elles en one to many

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
 
public class Conversation implements Serializable {
 
 
	private ConversationId conversationId = null;
	...
 
 
	public static final class ConversationId implements Serializable {
 
		private Long messageId = null;
 
		private String phoneNumber = null;
 
		private Operator targetOperator = null;
 
                ...
 
	}
}
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public class Operator implements Serializable {
 
	private String operatorName = null;
 
	private Set<Range> ranges = null;
 
        ...
}

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
 
<hibernate-mapping>
  <class name="Operator" table="T_OPERATOR">
    <id name="operatorName" column="F_OPERATOR_NAME" />
    <set name="ranges" inverse="true">
        <key column="F_OPERATOR"/>
        <one-to-many class="Range"/>
    </set>
  </class>
  <query name="allOperators">
    <![CDATA[
    select o from Operator o
    ]]>
  </query>
  <query name="allOperatorsByIdMessageAndPhoneNumber">
    <![CDATA[
    select op from Conversation as co join co.conversationId.targetOperator as op where co.idMessage = :idMessage and co.phoneNumber = :phoneNumber
    ]]>
  </query>
 
</hibernate-mapping>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<hibernate-mapping>
  <class name="Range" table="T_RANGE">
    <composite-id name="rangeId" class="Range$RangeId">
        <key-property name="lowBound" column="F_LOW_BOUND"/>
        <key-property name="upBound" column="F_UP_BOUND"/>
    </composite-id>
	<property name="operator" column="F_OPERATOR"/>
  </class>
</hibernate-mapping>
j'obtiens une stacktrace au demarrage de l'appli

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
java.lang.NullPointerException
	at org.hibernate.hql.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:310)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3275)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3067)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
....
après recherche c'est la requete nommée allOperatorsByIdMessageAndPhoneNumber qui pose probleme

une idée ?
moi je seche