Estou fazendo uma query onde faço um group by utilizando um objeto.
Testanto isso no console (Hiber8IDE) funciona maravilha, mas, quando jogo na minha aplicação, dá erro.
Tentei assim: session.createQuery(hql) e session.find(hql) e o mesmo erro.
Enfim a pergunta: GROUP BY com objeto funciona ou não no HQL?
select b, c, a.dataVenda, sum(a.valorVenda)
from VendaDepartamentoDiaria as a , Filial as b , Departamento as c
where a.filial = b
and a.departamento = c
and a.filial.codigo = ?
and a.dataVenda >= ?
and a.dataVenda <= ?
group by b, c, a.dataVenda
Erro que retorna:
column “filial1_.dcr_fantasia” must appear in the GROUP BY clause or be used in an aggregate function
Minha classe Filial tem os atributos:
codigo;
fantasia;
Minha classe Departamento tem os atributos:
codigo;
descricao;
Minha classe VendaDepartamentoDiaria tem os atributos:
filial;
departamento;
dataVenda;
valorVenda;
O proprio pessoal do hibernate nao acha muito feliz usar HQL
Portanto… nao use hql
O que adianta voce tirar sql e aprender outr alinguagem?
Use Expression e Criteria… muito melhor, muito mais OO e muito mais limpo, sem contar que nao vai ter que fazer if para concatenar string nunca mais