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

Dúvida para mostrar listagem, buscando informações de várias tabelas

Bom dia pessoal!

Preciso da ajuda de vc´s...

Eu tenho que montar uma listagem reunindo informações de várias tabelas... Montei a estrutura, mas não está sendo mostrado as informações na listagem...

O SQL no banco fica dessa forma:

Select a.codigo_produto as codigo, b.descricao as descricao_tipo_produto, c.sulfixo_opcional, d.marca as montadora, d.descricao as modelo, 
       d.ano_ini as de_ano, d.ano_fim as ate_ano, d.cilindrada, a.tip_corr as corrente, /*prefixo, */ e.dentes_elos as nro_dentes_elos, 
       d.dianteira_traseira, d.duplo_pads as pinca_dupla, a.marca, a.pc_orig as original, e.liberado, e.lancamento, e.promocao, 
       e.queima_estoque, a.preco_real as preco, d.semelhante, a.imagem, a.imagem_embalagem, a.local_imagem, e.peso_liquido as peso, 
       a.codigo_ean as ean, a.class_fiscal as ncm, a.catalogo 
From ebf_produto a
Left Join ebf_produto_auxiliar b on a.codigo_produto = b.codigo_produto
Left Join ebf_produto c on b.codigo_produto = c.codigo_produto
Left Join descricao_produto d on c.codigo_produto = d.codigo_produto
Left Join produto e on d.codigo_produto = d.codigo_produto = e.codigo_produto

Minha classe "Principal":

package br.com.ebf.modelo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

import org.hibernate.validator.constraints.NotEmpty;

@Entity(name = "EBF_PRODUTO")
public class Ebf_Produto {

    @Id
    @NotEmpty
    @Column(name = "codigo_produto", length = 24)
    private String codigoProduto;

    @Column(name = "tip_corr", length = 7)
    private String tipoCorrente;

    @Column(length = 30)
    private String marca;

    @Column(name = "pc_orig", columnDefinition = "Character(1)")
    private Character original;

    @Column(name = "preco_real")
    private Double preco;

    @Column(length = 60)
    private String imagem;

    @Column(name = "imagem_embalagem", length = 60)
    private String imagemEmbalagem;

    @Column(name = "local_imagem", length = 100)
    private String localImagem;

    @Column(name = "codigo_ean", length = 24)
    private String ean;

    @Column(name = "class_fiscal", length = 20)
    private String ncm;

    @Column(columnDefinition = "Character(1)")
    private Character catalogo;

    // NOVOS CAMPOS:
    @Column(name = "sulfixo_opcional", length = 6)
    private String sulfixoOpcional;

    /************************************************************************/

    @OneToOne
    @JoinColumn(name = "codigo_produto")
    private Ebf_Produto_Auxiliar ebf_produto_auxiliar;

    @OneToOne
    @JoinColumn(name = "codigo_produto")
    private EBFMES_Produto ebfmes_produto;

    @OneToOne
    @JoinColumn(name = "codigo_produto")
    private EBFMES_Descricao_Produto ebfmes_descricao_produto;

    /************************************************************************/

    // getters and setters...
}

No meu ProdutoController, o método listaVaz:

    public void listaVaz() {
        List<Ebf_Produto> produtos = produtoDao.listaVaz("VAZ", "XTREME");
        result.include("produtos", produtos);
    }

E a implementação do método listaVaz no ProdutoDao:

    public List<Ebf_Produto> listaVaz(String marca1, String marca2) {
        try {
            TypedQuery<Ebf_Produto> query = manager.createQuery(
                    "Select ebfp From ebf_produto ebfp "
                  + "Left Join ebfp.ebf_produto_auxiliar ebf_produto_auxiliar "
                  + "Left Join ebfp.ebf_produto ebf_produto "
                  + "Left Join ebfp.ebf_decricao_produto ebf_descricao_produto "
                  + "Where ebfp.marca =:marca1 or ebfp.marca =:marca2", Ebf_Produto.class);

            query.setParameter("marca1", marca1);
            query.setParameter("marca2", marca2);

            List<Ebf_Produto> resultado = query.getResultList();

            return resultado;
        } catch (Exception e) {
            return null;
        }
    }
2 respostas

A query ta dando certo? ta caindo na exception? se vc habilitar para ele mostrar a query no console, pegar ela e jogar no banco, volta algum resultado? acho que são coisas que vc pode ver para tentar descobrir o motivo do erro.

solução!

Bom dia Alberto! Desculpe a demora em responder... Esse problema, consegui resolver... Provavelmente, terei outro, quando colocar na base de produção... Porque algumas tabelas foram criadas com o "usuarioA" e outras com o "usuarioB"... Mas abro outro post... 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