leopoldof
Esse erro dá somente com o hibernate ou ocorre quando vc executa a query sql no banco mesmo
gzofera
kra sua consulta está errada… tipow…
vc tem que colocar o distinct fora do sum
vc tah usando que banco?
em mysql a consulta fica assim
select DISTINCT sum(teste.valor) from teste;
espero ter ajudado…
vlws
Anderson_Leite
mario,
vc pode fazer o distinct usando criteria assim:
Criteria criteria = session.createCriteria( Cliente.class );
criteria.setProjection( Projections.distinct( Projections.property( "numSal" ) ) );
por hql deve ficar
marlonuba
Este erro dá no hibernate, ele nem gera o sql para enviar pro banco.
marlonuba
gzofera:
kra sua consulta está errada… tipow…
vc tem que colocar o distinct fora do sum
vc tah usando que banco?
em mysql a consulta fica assim
select DISTINCT sum(teste.valor) from teste;
espero ter ajudado…
vlws
Eu estou usando banco Oracle.
A opção de colocar o distinct dentro do sum eu peguei na documentação do hql:
http://www.developer.com/java/ent/print.php/10933_3322131_2
trecho da documentação:
count( [ distinct | all ] object | object.property )
count(*) (equivalent to count(all ...), counts null values also)
sum ( [ distinct | all ] object.property)
avg( [ distinct | all ] object.property)
max( [ distinct | all ] object.property)
min( [ distinct | all ] object.property)
E rodei uma consulta direto no banco utilizando sum(distinct) e funcionou.
Não sei porque o hibernate tá gerando este erro se na documentação eles dão suporte a este tipo de consulta.
marlonuba
Anderson Leite:
mario,
vc pode fazer o distinct usando criteria assim:
Criteria criteria = session.createCriteria( Cliente.class );
criteria.setProjection( Projections.distinct( Projections.property( "numSal" ) ) );
por hql deve ficar
A opção de colocar o distinct dentro do sum eu peguei na documentação do hql:
trecho da documentação:
count( [ distinct | all ] object | object.property )
count(*) (equivalent to count(all …), counts null values also)
sum ( [ distinct | all ] object.property)
avg( [ distinct | all ] object.property)
max( [ distinct | all ] object.property)
min( [ distinct | all ] object.property)
E rodei uma consulta direto no banco utilizando sum(distinct) e funcionou.