HQL适用于Tomcat,而不适用于Oracle AppServer 10.1.3?

时间:2011-02-01 15:59:35

标签: hibernate hql oc4j

在Tomcat上运行应用程序时,我没有收到任何错误。在Oracle(OC4J)10.1.3上运行时,我得到以下内容:

org.hibernate.hql.ast.QuerySyntaxError: unexpected end of subtree [   
SELECT c, cc, pa, ta      
  FROM com.test.CASE c
  LEFT OUTER JOIN c.personadmin pa           
  LEFT OUTER JOIN c.termadmin ta           
  LEFT OUTER JOIN c.caseChannel cc     
 WHERE c.case_id IN ()  
ORDER BY c.case_id, cc.caseChannelCd ]
...
Caused by: <AST>: unexpected end of subtree

看起来像是一个库问题,但我还没有发现环境之间存在任何不一致(关于Hibernate)。

可能导致此类错误的原因是什么?

编辑:

这是来源:

    String hql = "   SELECT c, cc, pa, ta " 
               + "     FROM CASE c " 
               + "          LEFT OUTER JOIN c.personadmin pa "
               + "          LEFT OUTER JOIN c.termadmin ta "
               + "          LEFT OUTER JOIN c.caseChannel cc "
               + "    WHERE c.case_id IN (:caseIds) "
               + " ORDER BY c.case_id, cc.caseChannelCd ";

    Query query = getSession().createQuery(hql);
    query.setParameterList("caseIds", caseIdList);
    results = query.list();

1 个答案:

答案 0 :(得分:4)

这个错误发生在一个容器中,但另一个容器中却没有,这真的很奇怪。我想问题就在这里:

  

WHERE c.case_id IN()

因此,它暗示它也会在Tomcat上失败。因此,我首先要验证您运行的查询是否完全相同。