List com criteriaQuery.select
28/05/2018
0
Pessoal, criei um DTO e ele tem uma lista. quanto passo essa lista em meu criteriaBuilder.construct ele da erro.
CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder(); CriteriaQuery<ProdutoDTO> criteriaQuery = criteriaBuilder.createQuery(ProdutoDTO.class); Root<Produto> root = criteriaQuery.from(Produto.class); Join<Produto, Unidademedida> unidade = root.join("unidademedida", JoinType.LEFT); Join<Produto, Entidade> fabricante = root.join("fornecedor", JoinType.LEFT); Join<Produto, Grupo> grupo = root.join("grupo"); Join<Variacao, Produto> teste= root.join("listavariacao"); criteriaQuery.select(criteriaBuilder.construct(ProdutoDTO.class, root.get(Produto_.id), root.get(Produto_.nome), root.get(Produto_.referencia), unidade.get(Unidademedida_.id), root.get(Produto_.preco), root.get(Produto_.preco2), root.get(Produto_.lucro), fabricante.get(Entidade_.id), root.get(Produto_.peso), root.get(Produto_.multiplos), root.get(Produto_.precocompra), root.get(Produto_.impostos), root.get(Produto_.outrasdespesas), root.get(Produto_.custototal), root.get(Produto_.st), root.get(Produto_.variacao), root.get(Produto_.datacadastro), root.get(Produto_.dataalteracao), root.get(Produto_.status), grupo.get(Grupo_.id), teste.get(Produto_.listavariacao))); /*aqui que o erro ocorre*/ o construtor do meu DTO está assim: public ProdutoDTO(Integer id, String nome, String referencia, Integer idunidademedida, BigDecimal preco, BigDecimal preco2, Double lucro, Integer idfabricante, Double peso, Integer multiplos, BigDecimal precocompra, int impostos, BigDecimal outrasdespesas, BigDecimal custototal, BigDecimal st, Boolean possuiuvariacao, LocalDateTime datacadastro, LocalDateTime dataalteracao, Boolean status, Integer idgrupo,List<Variacao> variacoes) { this.id = id; this.nome = nome; this.referencia = referencia; this.idunidademedida = idunidademedida; this.preco = preco; this.preco2 = preco2; this.lucro = lucro; this.idfabricante = idfabricante; this.peso = peso; this.multiplos = multiplos; this.precocompra = precocompra; this.impostos = impostos; this.outrasdespesas = outrasdespesas; this.custototal = custototal; this.st = st; this.possuiuvariacao = possuiuvariacao; this.datacadastro = datacadastro; this.dataalteracao = dataalteracao; this.status = status; this.idgrupo = idgrupo; this.variacoes=variacoes; }
Sidnei Twardowski
Curtir tópico
+ 2
Responder
Post mais votado
17/04/2019
Boa noite, estou com o mesmo erro. Por acaso achou alguma solução?
Matheus Faxina
Responder
Mais Posts
15/07/2020
Michael Aguiar
Pessoal, criei um DTO e ele tem uma lista. quanto passo essa lista em meu criteriaBuilder.construct ele da erro.
CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder(); CriteriaQuery<ProdutoDTO> criteriaQuery = criteriaBuilder.createQuery(ProdutoDTO.class); Root<Produto> root = criteriaQuery.from(Produto.class); Join<Produto, Unidademedida> unidade = root.join("unidademedida", JoinType.LEFT); Join<Produto, Entidade> fabricante = root.join("fornecedor", JoinType.LEFT); Join<Produto, Grupo> grupo = root.join("grupo"); Join<Variacao, Produto> teste= root.join("listavariacao"); Conseguiu resolver?? criteriaQuery.select(criteriaBuilder.construct(ProdutoDTO.class, root.get(Produto_.id), root.get(Produto_.nome), root.get(Produto_.referencia), unidade.get(Unidademedida_.id), root.get(Produto_.preco), root.get(Produto_.preco2), root.get(Produto_.lucro), fabricante.get(Entidade_.id), root.get(Produto_.peso), root.get(Produto_.multiplos), root.get(Produto_.precocompra), root.get(Produto_.impostos), root.get(Produto_.outrasdespesas), root.get(Produto_.custototal), root.get(Produto_.st), root.get(Produto_.variacao), root.get(Produto_.datacadastro), root.get(Produto_.dataalteracao), root.get(Produto_.status), grupo.get(Grupo_.id), teste.get(Produto_.listavariacao))); /*aqui que o erro ocorre*/ o construtor do meu DTO está assim: public ProdutoDTO(Integer id, String nome, String referencia, Integer idunidademedida, BigDecimal preco, BigDecimal preco2, Double lucro, Integer idfabricante, Double peso, Integer multiplos, BigDecimal precocompra, int impostos, BigDecimal outrasdespesas, BigDecimal custototal, BigDecimal st, Boolean possuiuvariacao, LocalDateTime datacadastro, LocalDateTime dataalteracao, Boolean status, Integer idgrupo,List<Variacao> variacoes) { this.id = id; this.nome = nome; this.referencia = referencia; this.idunidademedida = idunidademedida; this.preco = preco; this.preco2 = preco2; this.lucro = lucro; this.idfabricante = idfabricante; this.peso = peso; this.multiplos = multiplos; this.precocompra = precocompra; this.impostos = impostos; this.outrasdespesas = outrasdespesas; this.custototal = custototal; this.st = st; this.possuiuvariacao = possuiuvariacao; this.datacadastro = datacadastro; this.dataalteracao = dataalteracao; this.status = status; this.idgrupo = idgrupo; this.variacoes=variacoes; }
Responder
Clique aqui para fazer login e interagir na Comunidade :)