0

この方法でHQLにパラメータを設定しようとしています:

 Query query = session.createQuery("from Device d " +
                    "left join fetch d.tradeInOldDevice " +
                    "left join fetch d.tradeInNewDevice " +
                    "left join fetch d.warranty "  +
                    "where d.owningCompany.customerRefId =:customerId ");


              query.setString("customerId", "someHardCodeCustomerId");


            Set<Device> customerDevices= (Set<Device>) query.list();

私はそのエラーを取得しています:

2013 年 8 月 24 日

2:36:02 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ServicesServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
    at org.hibernate.hql.ast.HqlSqlWalker.generateNamedParameter(HqlSqlWalker.java:945)

休止状態の依存関係:

 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.0.1.Final</version>
        </dependency>


<!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>3.6.10.Final</version>
        </dependency>

Springコンテナ内のTomcatで休止状態を実行しています。

Maven を使用しているプロジェクトで Maven の依存関係を確認しました: antlr:antlr:2.7.2。

ここで何が問題なのですか?

ありがとう。

4

2 に答える 2

2

ライブラリの競合。別のバージョンの antlrXXX.jar が web-inf/lib にロードされていると思います。これは、休止状態が依存するものの前にロードされます。完全性のために正しい依存関係を入れて返信できるように、使用されている休止状態のバージョンで質問を完了してください。

更新: コメントの後、競合するバージョンは 2.7.2 です。mvn dependency:tree を使用して 2.7.2 をインポートしている人を確認し、pom でその推移的な依存関係を除外します。

于 2013-09-24T11:42:08.823 に答える