Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Problema com join no TypedQyery

Boa tarde Pessoal!

Eu estou com um problemas para carregar uma listagem de produtos... eu tenho minha classe Produto e outra ProdutoDetalhe...

Porém quando eu chamo o lista.jsp, não é listado nenhum produto... Adicionei um if, com um system.out.print no meu produto controller e é impresso, que a lista está vazia... Porém copiei o SQL da TypedQuery e os produtos são listados no Select... Acredito que seja algum problema no meu código...

Segue abaixo meu código...

Na classe ProdutoDetalhe eu adicionei a anotação :

@OneToOne
private Produto produto;

E na classe Produto o implements:

public class Produto implements Serializable {

    private static final long serialVersionUID = 1L;

restante do código...

E no ProdutoDao, meu método lista:

    public List<Produto> lista(String marca) {
        try {
            TypedQuery<Produto> query = manager
                    .createQuery("Select tab1.codigoProduto, tab1.campo2, tab2.campo1, tab2.campo2 "
                            + "From Produto tab1 left join ProdutoDetalhe tab2 on tab1.codigoProduto = tab2.codigoProduto "
                            + "and p.marca = :marca", Produto.class);
            query.setParameter("marca", marca);

            return query.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

E no meu Produtocontroller, meu método lista:

    public void lista() {
        List<Produto> produtos = produtoDao.lista("EmpresaX");
        if(produtos == null){
            System.out.println("ProdutoController: A List produtos está NULA...");
        } else{
            System.out.println("ProdutoController: A List produtos NÃO está NULA...");
        }
        result.include("produtos", produtos);
    }
4 respostas

1º dia...

Se a relação de Produto e Detalhe Produto é de um para um, vocẽ não precisa desse JOIN, relacionamentos @OneToOne são eager por padrão

posta as classes produto e DetalheProduto completas

solução!

Bom dia Ricardo!! Cara depois que eu normalizei a tabela de produto, fiz o mapeamento tudo parou de funcionar... Depois que eu criei esse tópico, alterei todo mapeamento, com base em um e-book que eu comprei na C.C. Abri um novo post => https://cursos.alura.com.br/forum/topico-problemas-com-o-mapeamento-das-classes-no-jpa-34218

Agradeço muito, se vc puder dar uma olhada... Obrigado e um abraço!!

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