在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();
答案 0 :(得分:4)
这个错误发生在一个容器中,但另一个容器中却没有,这真的很奇怪。我想问题就在这里:
WHERE c.case_id IN()
因此,它暗示它也会在Tomcat上失败。因此,我首先要验证您运行的查询是否完全相同。