Rich:datatable com OneToMany

3 respostas
M

to com o seguinte problema:

minha classe esta mapeada de forma correta,
@OneToMany(cascade = CascadeType.ALL, targetEntity = Endereco.class, fetch = FetchType.LAZY)
	private List<Endereco> endereco;
	
	@OneToMany(cascade = CascadeType.ALL, targetEntity = Contatos.class, fetch = FetchType.LAZY)
	private List<Contatos> contatos;
e minha managedbean ta da seguinte forma:
public class ManagedBean {

	private Pessoa pessoa;
	private Contatos contatos;
	private Endereco endereco;
	
	private String buscarpor;
	private String referencia;
	
	private List<Pessoa> listapessoa;
	
	public ManagedBean() {
		// TODO Auto-generated constructor stub
		
		pessoa = new Pessoa();
		contatos = new Contatos();
		endereco = new Endereco();	
		listapessoa = new ArrayList<Pessoa>();
		
	}

no console aparece o retorno do toString de Pessoa na lista:

[Pessoa [idpessoa=1, nome=Mairon, rg=123456789, dtnasc=2012-03-22, endereco=[Endereco [idEndereco=1, logradouro=amadeu, numero=123, cep=12434545, bairro=centro, municipio=nilo]]]]

mas no rich:dataTable não consigo exibir o endereco(Endereco).

atualmente a pagina ta da seguinte forma:
<rich:dataTable id="tabelabusca" value="#{ManagedBean.listapessoa}" var="p"
               width="60%" border="1">

             <rich:column>
                 <f:facet name="header">
                   <h:outputLabel value="Endereco"/>
                 </f:facet>
             </rich:column>
             <h:outputText value="#{p.endereco.cep}"/>
mas já tentei da seguinte forma:
<rich:dataTable id="tabelabusca" value="#{ManagedBean.listapessoa}" var="p"
               width="60%" border="1">

             <rich:column>
                 <f:facet name="header">
                   <h:outputLabel value="Endereco"/>
                 </f:facet>
             </rich:column>
             <h:outputText value="#{p.cep}"/>
e já tentei também da seguinte forma:
<rich:dataTable id="tabelabusca" value="#{ManagedBean.listapessoa}" var="p"
               width="60%" border="1">

             <rich:column>
                 <f:facet name="header">
                   <h:outputLabel value="Endereco"/>
                 </f:facet>
             </rich:column>
             <h:outputText value="#{p.pessoa.endereco.cep}"/>

nada disso me deu retorno do endereco. como pode ser feito? tem como dá uma ajuda??

vlw, abraço!

3 Respostas

M

alguém sabe como pode ser feito?

M

alguém pode ajudar?

M

depois de muito pesquisar, o obvio que ninguém enxerga prevaleceu rrssss…

<rich:dataTable id="tabelabusca" value="#{ManagedBean.listapessoa}" var="p"  
        width="60%" border="1">  
  
      <rich:column>  
          <f:facet name="header">  
            <h:outputLabel value="Endereco"/>  
          </f:facet>  
      </rich:column>  
      <h:dataTable value="#{p.endereco}" var="pe">
          <h:outText value="#{pe.rua}"/>

      </h:dataTable>

tem que iterar a lista 2 vezes: fazer um dataTable para uma lista dentro de outra lista.

Obrigado por quem leu e tentou ajudar!

Criado 24 de março de 2012
Ultima resposta 15 de abr. de 2012
Respostas 3
Participantes 1