2013-12-24 2 views
1

Я пытаюсь сделать простую арифметическую операцию между двумя столбцами.org.hibernate.QueryException с арифметическим оператором в Where where

мой запрос 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 док главе 16.7, он говорит:

you can use arithmetic operators, concatenation, and recognized SQL functions in the select clause:

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

ссылки неправильно: арифметический оператор является поддерживается с помощью агрегатных функций: глава 16.7 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/queryhql.html#queryhql-aggregation Пробовал ли вы SELECT a.ht + a.tva FROM com.test.entity.TestTable - группа a.id' (a ssuming id - ваш pk) – ben75

+0

Такая же ошибка с группой на моем pk – yannterzi

ответ

0

проблема решена! Просто проблема в моем persistence.xml,

я использовал это свойство:

property name="hibernate.query.factory_class" value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory" 

Но только org.hibernate.hql.ASTQueryTranslatorFactory обеспечить зимует 3 функциональные

спасибо

Смежные вопросы