I need to list information from two tables on the same grid, they have relationship created by hibernate itself. You would need the vendor name in the table below.
In case they would be these classes:
Template:
public class Produto {
@Id
@GeneratedValue
private Integer id;
private String nome;
private String marca;
private String categoria;
private double preco;
@ManyToMany
private List<Fornecedor> fornecedor = new ArrayList<Fornecedor>();
public List<Fornecedor> getFornecedor() {
return fornecedor;
}
public void adicionaFornecedor(Fornecedor fornecedor) {
this.fornecedor.add(fornecedor);
}
@ManyToMany
private List<Produto> produtos = new ArrayList<Produto>();
public List<Produto> getProdutos() {
return produtos;
}
public void adicionaProduto(Produto produtos) {
this.produtos.add(produtos);
}
public Produto (){
}
/*getter and setters*/
@Entity
@Embeddable
public class Fornecedor {
@Id
@GeneratedValue
private int id;
private String nome;
private Integer telefone;
private String email;
@ManyToMany
private List<Fornecedor> fornecedores = new ArrayList<Fornecedor>();
public List<Fornecedor> getFornecedores() {
return fornecedores;
}
public void adicionaFornecedor(Fornecedor fornecedores) {
this.fornecedores.add(fornecedores);
}
/*getter and setters*/
<p:dataTable value="#{produtoBean.produtos}" var="produto"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
paginator="true" rows="5" style="margin-bottom:10px">
<p:column >
<f:facet name="header">Nome</f:facet>
<h:outputText value="#{produto.nome}" />
</p:column>
<p:column>
<f:facet name="header">Marca</f:facet>
<h:outputText value="#{produto.marca}" />
</p:column>
<p:column>
<f:facet name="header">Categoria</f:facet>
<h:outputText value="#{produto.categoria}" />
</p:column>
<p:column>
<f:facet name="header">Preço</f:facet>
<h:outputText value="#{produto.preco}" />
</p:column>
</p:dataTable>