i notice this error in some topic,but my hql is different and i try defferent version of antlr,but it does not work!
please notice it woks well in hibernate2.1.7
help please
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping auto-import="false">
<class name="com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT4" table="entity_t4">
<id name="a29" type="java.lang.Integer" column="a29" unsaved-value="any">
<generator class="assigned"/>
</id>
<property name="a24" type="java.lang.Integer" column="a24" length="4"/>
<property name="a25" type="java.lang.Integer" column="a25" length="4"/>
<property name="a26" type="java.util.Date" column="a26"/>
<property name="a27" type="java.lang.Integer" column="a27" length="4"/>
<property name="a28" type="java.util.Date" column="a28"/>
<property name="a30" type="java.lang.String" column="a30" length="50"/>
<property name="a31" type="java.lang.Integer" column="a31" length="4"/>
<property name="a32" type="java.lang.Boolean" column="a32"/>
<property name="a33" type="java.lang.String" column="a33" length="100"/>
<property name="a34" type="java.lang.String" column="a34" length="100"/>
<property name="projectId" type="java.lang.Integer" column="project_id" length="4"/>
<property name="gridId" type="java.lang.Integer" column="grid_id" length="4"/>
<property name="processStatus" type="java.lang.String" column="process_status" length="50"/>
<set lazy="false" inverse="true" name="r1" table="entity_t5_r1" order-by="r1_a41 asc" cascade="none">
<key column="r1_a29"/>
<many-to-many class="com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT5" column="r1_a41"/>
</set>
<many-to-one name="r2" class="com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT5" cascade="none" outer-join="auto" access="property" not-null="false" column="r2_a41"/>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping auto-import="false">
<class name="com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT5" table="entity_t5">
<id name="a41" type="java.lang.Integer" column="a41" unsaved-value="any">
<generator class="assigned"/>
</id>
<property name="a36" type="java.lang.Integer" column="a36" length="4"/>
<property name="a37" type="java.lang.Integer" column="a37" length="4"/>
<property name="a38" type="java.util.Date" column="a38"/>
<property name="a39" type="java.lang.Integer" column="a39" length="4"/>
<property name="a40" type="java.util.Date" column="a40"/>
<property name="a42" type="java.lang.String" column="a42" length="50"/>
<property name="a43" type="java.lang.Integer" column="a43" length="4"/>
<property name="a44" type="java.lang.Boolean" column="a44"/>
<property name="a45" type="java.lang.String" column="a45" length="300"/>
<property name="a46" type="java.lang.String" column="a46" length="50"/>
<property name="projectId" type="java.lang.Integer" column="project_id" length="4"/>
<property name="gridId" type="java.lang.Integer" column="grid_id" length="4"/>
<property name="processStatus" type="java.lang.String" column="process_status" length="50"/>
<set lazy="true" inverse="false" name="r1" table="entity_t5_r1" order-by="r1_a29 asc" cascade="none">
<key column="r1_a41"/>
<many-to-many class="com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT4" column="r1_a29"/>
</set>
<set lazy="true" inverse="true" name="r2" table="entity_t4" order-by="a29" cascade="none">
<key column="r2_a41"/>
<one-to-many class="com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT4"/>
</set>
</class>
</hibernate-mapping>
hibernate version is 3.2,when i invoke the method SessionImpl.createQuery(hql),the hql is:select member from com.egi.core.datastructure.entity.p4028829c_03e439e6_0103_e439e6d2_0000.v74.EntityT5 as org inner join org.r2 as manager left join org.r 1 as member where manager.a29=50 and member.a29<>50 and (member.r2<>org.a41 or member.r2 is null) order by member.a29
the follow exception is thrown:
11:50:49,246 ERROR PARSER:33 - line 1:8: unexpected token: member
java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
at org.hibernate.hql.antlr.HqlBaseParser.selectClause(HqlBaseParser.java:1391)
at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1106)
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702)
at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:248)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
please notice it woks well in hibernate2.1.7
|