HQL работает на Tomcat не на Oracle AppServer 10.1.3? - PullRequest
1 голос
/ 01 февраля 2011

При запуске приложения на 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) между средами.

Что может вызвать этот тип ошибки?

Edit:

Вот источник:

    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 Ответ

4 голосов
/ 01 февраля 2011

Странно, что эта ошибка происходит в одном контейнере, а не в другом.Я бы сказал, что проблема здесь:

ГДЕ c.case_id IN ()

Таким образом, это означает, что он также потерпит неудачу на Tomcat.Итак, я бы сначала проверил, совпадает ли выполняемый вами запрос в обоих случаях.

...