Hibernate SetParameter сводит меня с ума - PullRequest
1 голос
/ 11 марта 2011

Это работает

hql = "from State where StateCode like 'T%'";
Query query = session.createQuery(hql);

Это не

hql = "from State where StateCode like :StateCode";
Query query = session.createQuery(hql);
query.setParameter("StateCode", "T%");

Я получаю это

1568 [main] DEBUG org.hibernate.hql.ast.ErrorCounter  - throwQueryException() : no errors
1596 [main] DEBUG org.hibernate.hql.antlr.HqlSqlBaseWalker  - select << begin [level=1, statement=select]
1608 [main] DEBUG org.hibernate.hql.ast.tree.FromElement  - FromClause{level=1} :  com.kencogroup.kkms.models.State (no alias) -> state0_
1610 [main] DEBUG org.hibernate.hql.ast.tree.FromReferenceNode  - Resolved :  {synthetic-alias} -> {synthetic-alias}
1611 [main] DEBUG org.hibernate.hql.ast.tree.DotNode  - getDataType() : StateCode -> org.hibernate.type.StringType@a39137
1611 [main] DEBUG org.hibernate.hql.ast.tree.FromReferenceNode  - Resolved :  {synthetic-alias}.StateCode -> state0_.StateCode
SELECT Exception: java.lang.reflect.UndeclaredThrowableException

Обратите внимание на исключение UndeclaredThrowableException.

Что я делаю не так?

База данных SQL Server 2008, если это помогает.Но, как я уже сказал, другие запросы работают просто отлично.

Спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Если вы следуете стандартным правилам именования, оно должно быть stateCode, а не StateCode.Попробуйте с

hql = "from State where stateCode like :myStateCode";
Query query = session.createQuery(hql);
query.setParameter("myStateCode", "T%");
0 голосов
/ 14 марта 2011

НАКОНЕЦ!

Оказывается, версия ANTLR в Struts 1 отличалась от версии Hibernate.ИТОГО путаница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...