Bonjour,
J'ai rencontré un problème en passant de la version Hibernate 3.1.3 vers 3.2.0-ga.
Une requête HQL qui fonctionnait bien avant la mise à jour semble, maintenant, avoir un problème de syntaxe car j'ai obtenu l'exception suivante :
java.lang.IllegalStateException: DOT node with no left-hand-side!
at org.hibernate.hql.ast.tree.DotNode.getLhs(DotNode.java:559)
at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:534)
at org.hibernate.hql.ast.tree.BinaryLogicOperatorNode.extractDataType(BinaryLogicOperatorNode.java:168)
at org.hibernate.hql.ast.tree.BinaryLogicOperatorNode.initialize(BinaryLogicOperatorNode.java:35)
at org.hibernate.hql.ast.HqlSqlWalker.prepareLogicOperator(HqlSqlWalker.java:1014)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3992)
Voici la requête HQL : "from Demande d where (d.class = fr.crb.soc.Pret or d.class = fr.crb.soc.EvtFamille) and d.date >= :date"
Après quelques investigations, il semble que le parser HQL ne semble ne plus accepter les nom de package Java absolus.
En effet, la requête corrigée comme suit, marche très bien :
"from Demande d where (d.class = Pret or d.class = EvtFamille) and d.date >= :date"
Cela semble être une régression, non ?
-- Frantz
|