HQLはOracle AppServer 10.1.3ではなくTomcatで動作しますか?
質問
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();
解決
このエラーが1つの容器で発生するのは本当に奇妙ですが、他の容器ではそうではありません。問題はここにあると思います:
ここでc.case_id in()
したがって、それはそれがTomcatでも失敗することを意味します。したがって、実行しているクエリが両方でまったく同じかどうかを最初に確認します。
所属していません StackOverflow