异常
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'uqm.name' [select o from model.UserModel o where 1=1 and uqm.name like :name]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:284)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1800)
at hibernate4.dao.impl.UserDaoImpl.queryByContidion(UserDaoImpl.java:164)
at hibernate4.clientTest.Test.queryByCondition(Test.java:29)
at hibernate4.clientTest.Test.main(Test.java:25)
Exception in thread "main" java.lang.NullPointerException
at hibernate4.dao.impl.UserDaoImpl.queryByContidion(UserDaoImpl.java:169)
at hibernate4.clientTest.Test.queryByCondition(Test.java:29)
at hibernate4.clientTest.Test.main(Test.java:25)
仔细看后,第一行已经说明了一切
我的HQL 查询语句是 select o from UserModel o where 1=1
在后面的 HQL中 " and uqm.age=:age " , uqm 应该改为 o 。
转载于:https://blog.51cto.com/srteert/1429806
本文分析了一个Hibernate框架中出现的HQL查询异常,错误在于路径指定不正确导致的语法问题。作者通过修改查询语句中的别名,解决了uqm.name的引用问题,并给出了正确的HQL语法。

1万+

被折叠的 条评论
为什么被折叠?



