Hibernate设置参数让我发疯
这很有效Hibernate设置参数让我发疯,hibernate,hql,Hibernate,Hql,这很有效 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] DE
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
1568[main]DEBUG org.hibernate.hql.ast.ErrorCounter-throwQueryException():无错误
1596[main]调试org.hibernate.hql.antlr.HqlSqlBaseWalker-选择状态0_
1610[main]DEBUG org.hibernate.hql.ast.tree.FromReferenceNode-已解析:{synthetic alias}->{synthetic alias}
1611[main]调试org.hibernate.hql.ast.tree.DotNode-getDataType():StateCode->org.hibernate.type。StringType@a39137
1611[main]DEBUG org.hibernate.hql.ast.tree.FromReferenceNode-已解析:{synthetic alias}.StateCode->state0\u0.StateCode
选择异常:java.lang.reflect.UndeclaredThrowableException
请注意未声明的hrowableexception
异常
我做错了什么
如果有帮助的话,数据库是SQL Server 2008。但是就像我说的,其他的查询也可以
谢谢如果您遵循标准命名约定,它应该是
stateCode
,而不是stateCode
。
试一试
hql = "from State where stateCode like :myStateCode";
Query query = session.createQuery(hql);
query.setParameter("myStateCode", "T%");
如果遵循标准命名约定,则应为
stateCode
,而不是stateCode
。
试一试
hql = "from State where stateCode like :myStateCode";
Query query = session.createQuery(hql);
query.setParameter("myStateCode", "T%");
终于
事实证明,Struts 1中的ANTLR版本与Hibernate版本不同。完全混乱。最后
事实证明,Struts 1中的ANTLR版本与Hibernate版本不同。完全混乱。你能显示完整的堆栈跟踪吗?我指的是异常的堆栈跟踪,而不是日志。你还应该向我们显示状态实体的源代码这里是状态源代码的要点,AbstractRepository源代码,堆栈跟踪(据我所知),等等。我正在尝试实现类似:
stateRepo.like(“StateCode”、“TN”).select();
和stateRepo.like(“StateCode”、“TN”).like(“AccountingCode”,25)。select()
等。您能显示完整的堆栈跟踪吗?我是指异常的堆栈跟踪,而不是日志。您还应该向我们显示状态实体的源代码这里是状态源代码、抽象存储库源代码、堆栈跟踪(据我所知)等的要点。我正在尝试实现类似以下内容:stateRepo.like(“StateCode”)“,“TN”)。选择()代码>和stateRepo.like(“StateCode”,“TN”).like(“AccountingCode”,25)。选择()代码>等。