Bom dia, Pessoal.
Tenho o seguinte código abaixo, só que fica emitindo um erro quando executa o metodo listar do controller, alguém saberia me dizer o que estou fazendo errado.
O Erro que ocorre é esse abaixo.
Request processing failed; nested exception is java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return using requested result type
Model Produto
@Entity
public class Produto {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne
private TipoCategoria categoria;
private String descricao;
private BigDecimal valor;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public TipoCategoria getTipoCategoria() {
return categoria;
}
public void setTipoCategoria(TipoCategoria categoria) {
this.categoria = categoria;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public BigDecimal getValor() {
return valor;
}
public void setValor(BigDecimal valor) {
this.valor = valor;
}
}
Model TipoCategoria
@Entity
public class TipoCategoria {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String descricao;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
Controller
public List<Produto> listar() {
// TODO Auto-generated method stub
return manager.createQuery("Select p.descricao, tipoCategoria, SUM(p.valor) as valor From Produto p"
+ " join p.categoria tipoCategoria"
+ " Group By p.descricao, tipoCategoria",Produto.class).getResultList();
}