Bonjour

J'ai deux tables jointes et je souhaite ramener qu'un seul champ de la premiere table si le test avec la deuxieme est ok.
Si je ramene tout l'objet c'est OK
Quand je cherche a avoir un seul champ, j'ai l'erreur

Merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
java.lang.IllegalArgumentException: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=T1,role=null,tableName=TCRIT08,tableAlias=crit08x1_,origin=TCRIT07 crit07x0_,colums={crit07x0_.T7_ID ,className=hibernate4.buissnessobject.Crit08}}] [SELECT odXX.id FROM hibernate4.buissnessobject.Crit07 as odXX LEFT OUTER JOIN FETCH odXX.monc8dsc7 AS T1 WHERE  T1.name = 'MONNOMTESTC804']
	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:624)
	at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
       StringBuilder queryCode = new StringBuilder();
//BAD
       queryCode.append("SELECT odXX.id FROM Crit07 as odXX");
//OK
      queryCode.append("FROM Crit07 as odXX");
       queryCode.append(" LEFT OUTER JOIN FETCH odXX.monc8dsc7 AS T1") ;
       queryCode.append(" WHERE ");
       queryCode.append(" T1.name = 'MONNOMTESTC804'");
 
       log.info("A TESTER01 QUERY "+queryCode.toString());
       Query query = em.createQuery(queryCode.toString());
       List<Crit07> rt=(List<Crit07>)query.getResultList();