Me ajudem,
Tenho uma classe TO que recebe o resultado de uma consulta HQL. Se eu retiro o count() da minha consulta funciona tudo bem, mas quando coloco, aparece um erro dizendo que não encontrou o construtor apropriado.
Se eu substituir o count() por qualquer número funciona também. Quando tiro o construtor da classe e passo o resultado para um list também funciona.
Já tentei mudar o tipo do parâmentro pecas na classe por inteiro, long, double e BigDecimal e nenhum deu certo.
O que pode ser isso? A classe e a consulta estão abaixo.
public class PaleteTO {
private String cod_estante;
private int num_nivel_estan;
private String cod_endereco;
private String cod_patio;
private int pecas;
public PaleteTO(String cod_estante, int num_nivel_estan,
String cod_endereco, String cod_patio, int pecas) {
this.cod_estante = cod_estante;
this.num_nivel_estan = num_nivel_estan;
this.cod_endereco = cod_endereco;
this.cod_patio = cod_patio;
this.pecas = pecas;
}
public int getPecas() {
return pecas;
}
public void setPecas(int pecas) {
this.pecas = pecas;
}
public String getCod_estante() {
return cod_estante;
}
public void setCod_estante(String cod_estante) {
this.cod_estante = cod_estante;
}
public String getCod_endereco() {
return cod_endereco;
}
public void setCod_endereco(String cod_endereco) {
this.cod_endereco = cod_endereco;
}
public int getNum_nivel_estan() {
return num_nivel_estan;
}
public void setNum_nivel_estan(int num_nivel_estan) {
this.num_nivel_estan = num_nivel_estan;
}
public String getCod_patio() {
return cod_patio;
}
public void setCod_patio(String cod_patio) {
this.cod_patio = cod_patio;
}
}
E tenho o HQL da consulta
"SELECT " +
"new br.com.cd.to.PaleteTO(" +
"e.cod_estante, " +
"e.num_nivel_estan, " +
"e.cod_endereco, " +
"p.cod_patio, " +
"count(*)) " +
"FROM " +
"Endereco e, Palete p, Peca pe " +
"WHERE " +
"p.cod_palete = :palete " +
"AND pe.palete = p " +
"AND e.palete = p " +
"GROUP BY " +
"e.cod_estante, " +
"e.num_nivel_estan, " +
"e.cod_endereco, " +
"p.cod_patio";