2
respostas

Como popular um DTo através de um Entity que contem mapeamento de listas @OneToMany

Olá pessoal tudo bem? Por favor, Preciso entender como funciona o select jpa para um DTO . Onde a Classe Produto tem um @oneToMany List<_Informacao> informacoes

e a Classe ProdutoDto recebe no construtor o id e a lista de informacoes

String jpql = "SELECT NEW br.com.models.dto.ProdutoDto(p. id, p.informacoes) from Produto p";
        Collection<ProdutoDto> produtos = em.createQuery(jpql).getResultList();
        return produtos;

Esse exemplo acima não funciona, qual a forma correta de popular uma lista em um dto?

ERROR: Sintaxe incorreta próxima à palavra-chave 'as'.
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet

Obrigado, Huender

2 respostas

Fala Huender, tudo bem?

SELECT p.id, p.informacoes FROM Produto p JOIN p.informacoes

Opa bom dia! Não tinha lido sua resposta, já fazem muitos dias que não entro na plataforma.

Mas eu preciso a partir de uma Entidade Produto extrair uma nova classe (objeto)ProdutoDto. O erro acontece porque p.informacoes é uma lista.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software