我想在两列之间进行简单的算术运算。
我的HQL请求是:SELECT a.ht+a.tva FROM com.test.entity.TestTable a
我正在使用Hibernate 3.6.10-Final
,我有这个错误:
org.hibernate.QueryException: , expected in SELECT [SELECT a.ht+a.tva FROM com.test.entity.TestTable a]
org.hibernate.hql.classic.SelectParser.token(SelectParser.java:203)
org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:109)
org.hibernate.hql.classic.ClauseParser.end(ClauseParser.java:136)
org.hibernate.hql.classic.PreprocessingParser.end(PreprocessingParser.java:145)
org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:52)
org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:240)
org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:209)
org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
但是在jboss doc chapter 16.7中,它说:
您可以在select子句中使用算术运算符,连接和已识别的SQL函数:
select cat.weight + sum(kitten.weight) from Cat cat join cat.kittens kitten group by cat.id, cat.weight
我尝试了cast( ... as Long )
,但也没有用。
有人有解决方案或推荐吗?
非常感谢, Yann Terzibachian
答案 0 :(得分:0)
我使用了这个属性:
property name="hibernate.query.factory_class" value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory"
但只有org.hibernate.hql.ASTQueryTranslatorFactory
提供了hibernate 3功能
非常感谢