1

在 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

似乎是一个库问题,但我还没有发现环境之间的任何不一致(关于休眠)。

什么可能导致这种类型的错误?

编辑:

这是来源:

    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();
4

1 回答 1

4

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

WHERE c.case_id IN ()

因此,这意味着它在 Tomcat 上也会失败。因此,我将首先验证您正在运行的查询是否在两者中完全相同。

于 2011-02-01T16:03:24.777 回答