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