List com criteriaQuery.select

28/05/2018

12

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;
			
			
			
			
			
			
		}

Responder

Posts

17/04/2019

Matheus Faxina

Boa noite, estou com o mesmo erro. Por acaso achou alguma solução?
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar