[Resolvido] Retorna Dados de tabelas diferente para o dataTable de Cliente

Bom dia Pessoal.
Tenho o seguinte senário, uma tabela de clientes com dois relacionamentos 1 - N para endereco e 1 - N para contato, entao meu cliente poderá ter mais de 1 endereco e contato.
Preciso que na tela de clientes eu liste esses dados, mas como sou iniciante, tentei fazer essa consulta e não consegui, entao gostaria de uma ajuda de voces.
Os dados que gostaria de trazer, por exemplo, seriam o nome do cliente, e seus dados de contato, como por exemplo, email, telefone e celular, e ao selecionar um cliente
abrisse a tela de alteração com todos os dados do cliente seleciomado (endereco , contato e os proprios dados do cliente), sei que isso é uma dúvida simples, mas poderiam me ajudar ?
Att

Bom dia Deverling!

Primeira coisa a se pensar é como vc vai querer trazer esses dados na sua tabela…
Por exemplo, vc vai querer replicar os registros p/ cada Endereço ou Contato que o Cliente tiver?
Ou só trazer o primeiro registro (Endereço e Contato), e depois na edição vc mostrar tudo p/ o usuário?

Posta pra gente o que vc já fez pra ver no que podemos ajudar…

Talvez esse post possa te ajudar a mapear sua classe: @OneToMany e @ManyToOne Unidirecional e Bidirecional. Uma vez mapeados, você poderá trazer o resultado utilizando find, list e assim vai. [=

Olá MateusBuck.
Isso o que estou pensando em fazer é trazer o endereco e o contato marcados pelo cliente como principal e os demais registros mostrar apenas na hora da edição.
O que consegui fazer até agora foi apenas pesquisar os registros no banco dados, mas não retorná-los no hibernate
quando tentei fazer com HQL sempre deu erro, por esse motivo postei minha dúvida, tens como ajudar-me ?
Att

Mateus segue o codigo da consulta que estou utilizando.
Estou utilizando o padrao que o pessoal está seguindo no projeto, toda tabela tem sua view e é feito JOINS para retornar os dados

Segue

public List Pesquisar(Cliente cliente, String campoOrdenacao,
String ordenacao, Integer pagina, Integer limit) {

	String sql			   		= 	" SELECT " +
									 	" vwc.* " +
									 	" ,vwe.* " +
									 	" ,vwct.* " +
									" FROM " +
										" vwlistacliente vwc " + 
										" INNER JOIN vwlistaendereco vwe ON vwe.clienteid = vwc.clienteid " +
										" INNER JOIN vwlistacontato vwct ON vwct.clienteid = vwc.clienteid ";
	
	Query consulta	        	=	this.session.createSQLQuery(sql)
									.addEntity("vwc",Cliente.class)
									.addEntity("vwe",Endereco.class)
									.addEntity("vwct",Contato.class);

	
	List<Cliente> clientes  	=	consulta.list();
	
	return clientes;		
	
}

O interessante é que eu usei System.out.println(consulta.list().size()); e retornou a quantidade de registros correta

Mas na tela está dando o seguinte erro

java.lang.NumberFormatException: For input string: "nome"
java.lang.NumberFormatException.forInputString(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
javax.el.ArrayELResolver.toInteger(ArrayELResolver.java:375)
javax.el.ArrayELResolver.getValue(ArrayELResolver.java:195)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
com.sun.el.parser.AstValue.getValue(AstValue.java:116)
com.sun.el.parser.AstValue.getValue(AstValue.java:163)
com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
javax.faces.component.UIOutput.getValue(UIOutput.java:169)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
org.primefaces.component.datatable.DataTableRenderer.encodeRegularCell(DataTableRenderer.java:567)
org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:527)
org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:468)
org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:194)
org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:173)
org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:79)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:328)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:95)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:175)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
classe.projeto.utils.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:25)

Podes me ajudar ?

O que essa linha faz? classe.projeto.utils.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:25)

Bom, se vc está conseguindo popular a sua lista já é meio caminho andado…
Como vc ta fazendo pra popular a sua tabela? Vc criou uma classe TableModel?

java.lang.NumberFormatException: For input string: "nome"
O problema reportado nessa linha é que o Java não conseguiu transformar o valor passado em “nome” para Integer…

Olá Mateus

Estou populando minha DataTable assim

<p:dataTable var=“cliente” value="#{ClienteListagemBean.lazyModel}"
paginator=“true” rows=“30"
paginatorTemplate=”{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {CorrentPage} {RowsPerPageDropdown}“
rowsPerPageTemplate=“30,45,60” lazy=“true” dynamic=“true"
emptyMessage=”#{MensagemBean.mensagemNenhumRegistroEncontado}”>

					<p:column 
						styleClass="tblListagemRisiRefeicoes">
						<f:facet name="header">
							<h:outputText value="Nome" />
						</f:facet>
						<h:outputText value="#{cliente.nome}" />
					</p:column>
				</p:dataTable>

Estava pensando e acho que esse é justamente o meu erro, porque se eu fizer um SELECT * FROM vwlistacliente e retornar os dados apenas de cliente ele funciona,
mas não da forma que estou fazendo, não estou retornando apenas os dados de cliente, e sim de CLIENTE, ENDERECO e CONTATO acho que deveria alterar o retorno do meu metodo DAO de cliente para Objeto, como é a primeira vez que estou fazendo isso, tenho essa dúvidas iniciais.
Agora que vc tem o codigo do meu DAO e o DataTable, o que sugere-me ?

Acho que só mudando o seu retorno de Cliente p/ Object não vai funcionar, porque o seu SELECT está na tabela de clientes mesmo… usando o INNER JOIN vc só está fazendo buscar o relacionamento, agora eu não consegui achar o porque do erro de tranformar String em Integer…
Vc já tentou antes de popular a sua tabela fazer um For pra varrer a sua lista e ver se os registros que ele trouxe estão todos ok?

Sim, eu o compreendo mas o relacionamento não está na entidade cliente e sim na entidade Endereco e Contato, por isso achei que ao invés de retornar um cliente eu deveria retornar um Object.

Veja abaixo a entidade Contato e Endereco

@Entity
@Table(name = “contato”)
public class Contato implements Serializable{

private static final long serialVersionUID = 1116058132248806046L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer contatoID;

@ManyToOne
@JoinColumn(name="clienteID")
private Cliente cliente;

@Column(length = 100)
private String nome;

@Column(length = 100)
private String email;

@Column(length = 20)
private String telefone;

@Column(length = 20)
private String celular;

@Column(length = 100)
private String voip;

@Column(nullable=false)
private Boolean status;

    --get / set
    --hashCode -- equals

}

public class Endereco implements Serializable {

private static final long serialVersionUID = -6543126367934527420L;


@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer enderecoID;

@ManyToOne
@JoinColumn(name="cidadeID",nullable = false)
private Cidade cidade;

@ManyToOne
@JoinColumn(name="clienteID")
private Cliente cliente;

@Column(nullable = false, length = 100)
private String rua;

@Column(nullable = false)
private String numero;

@Column(length = 100)
private String complemento;

@Column(nullable = false, length = 100)
private String bairro;

@Column(nullable = false)
private String cep;

    --get / set
    --hashCode -- equals

}

E é com isso justamente que estou me batendo, como faço para trazer os dados das 3 entidades para uma tela de listagem de clientes , porque estou precisando listar os dados por exemplo de cliente (nome), contato (email - telefone e celular ) e endereco (cidade - estado).
Será que tem como ?

Tem como fazer isso sim… Na verdade vc vai popular uma lista do tipo Cliente ( List<Cliente> ) com esse seu Select…
Como cada entidade do tipo Cliente vai ter uma lista de Endereço e/ou Contato vc vai precisar “navegar” (percorrer os relacionamentos da sua Entidade principal) nesses seus objetos,
Por exemplo um laço pra percorrer os seus dados, é +/- isso que vc vai ter que fazer pra montar seu TableModel:

[code]
for(Cliente c : suaListaDeClientes){

  System.out.println(c.getNome());
  System.out.println(c.getContatoList().get(0).getTelefone());    //Peguei somente o primeiro indice da lista de Contatos
  System.out.println(c.getEnderecoList().get(0).getRua());         //Peguei somente o primeiro indice da lista de Endereços

}[/code]Deu pra entender? Faz uns testes ai pra ver se vc consegue “navegar” nos seus objetos da sua lista…

Sim eu entendi, utilizei o código que vc passou-me para fazer os testes e o objeto Cliente não possui os métodos
c.getContatoList() e c.getEnderecoList(), e antes já tinha tentado efetuar a impressão do nome do primeiro cliente da lista com o codigo clientes.get(0).getNome()
ai o java gerou a seguinte exception.

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to classe.projeto.cliente.Cliente
classe.projeto.cliente.ClienteDAOHibernate.Pesquisar(ClienteDAOHibernate.java:111)
classe.projeto.cliente.ClienteRN.Pesquisar(ClienteRN.java:94)
classe.projeto.bean.ClienteListagemBean.Pesquisar(ClienteListagemBean.java:51)
classe.projeto.bean.ClienteListagemBean.access$0(ClienteListagemBean.java:47)
classe.projeto.bean.ClienteListagemBean$1.load(ClienteListagemBean.java:40)
org.primefaces.component.datatable.DataTable.loadLazyData(DataTable.java:686)
org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:453)
org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:194)
org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:173)
org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:79)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:328)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:95)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:175)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

Abaixo segue a maneira que efetuei o mapeamento da entidade cliente

public class Cliente implements Serializable {

private static final long serialVersionUID = -893996185060004864L;


@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer clienteID;

@Column(nullable=false, length = 1)
private Character tipoCliente;

@Column(nullable=false, length = 100)
private String nome;

@Column(length = 100)
private String razaoSocial;

@Column(nullable=false, unique=true)
private String cnpf;

private String rgInscEstadual;

@Column(nullable=false)
private Boolean status;

}

OBS.: “Salvar o cliente, seus endereco e contatos eu consigo sem problemas”

Estava lendo sobre os tipos Enum, será que não poderia utilizar Enum para retornar os Dados, criando um Enum de Cliente, Endereco e Contato ?
Não sei se falei besteira agora.

Ai que está o problema… Você tem a classe Cliente relacionada nas classes Endereco e Contato, porém não tem essas classes relacionadas na Cliente, por isso vc não consegue “pegar” esses valores pela classe Cliente quando vai montar a tabela…
Vc precisa fazer o relacionamento de retorno na sua classe Cliente…

Seu relacionamento é +/- assim:
[i]
[b]1 Endereço possui 1 Cliente
1 Contato possui 1 Cliente

1 Cliente possui N Endereço
1 Cliente possui N Contato[/b][/i]

Correto?

Sim, correto, mas eu devo ter o relacionamento nas duas entidades então ?
Tanto na endereco e contato (como tenho hoje), como na de cliente ?
se sim como ficaria ?

Sim, vai ser necessário, justamente numa ocasião como essa, em que vc vai precisar dos dados de Endereço/Contato quando buscar pelo Cliente…

Mapeamento de retorno na sua classe Cliente

[code]@OneToMany(mappedBy = “cliente”, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Contato> contatoList;

@OneToMany(mappedBy = “cliente”, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Endereco> enderecoList;
[/code]
Getters das listas de Endereco e Contato na sua classe Cliente

public List&lt;Contato&gt; getContatoList() {
        return contatoList;
}

public List&lt;Endereco&gt; getEnderecoList() {
        return enderecoList;
}

Fazendo essas alterações na sua classe Cliente agora quando vc fizer um Select nela vc vai conseguir pegar as suas listas de Endereço e/ou Contato…
Faz uns testes ai, e da uma olhada naquele link que o nosso amigo jakefrog passou ali… Fala desse assunto mesmo…

Matues, muito obrigado pela ajuda, isso que vc me passou realmente está funcionando.
Utilizei o Loop que vc passou anteriormente para fazer os teste e funcionou tudo certinho, mas ká estou eu com outra pequena dúvida.
No xhtml que estou tentando efetuar a impressao do email do contato, da seguinte forma

<p:column
styleClass=“tblListagemRisiRefeicoes”>
<f:facet name=“header”>
<h:outputText value=“Email” />
</f:facet>
<h:outputText value="#{cliente.contato.email}" />
</p:column>

mas ai novamente é gerado aquela exception

java.lang.NumberFormatException: For input string: "email"
java.lang.NumberFormatException.forInputString(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
javax.el.ListELResolver.toInteger(ListELResolver.java:407)
javax.el.ListELResolver.getValue(ListELResolver.java:199)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
com.sun.el.parser.AstValue.getValue(AstValue.java:116)
com.sun.el.parser.AstValue.getValue(AstValue.java:163)
com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
javax.faces.component.UIOutput.getValue(UIOutput.java:169)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
org.primefaces.component.datatable.DataTableRenderer.encodeRegularCell(DataTableRenderer.java:567)
org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:527)
org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:468)
org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:194)
org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:173)
org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:79)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:328)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:95)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:340)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:175)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

Nunca efetuei a impressao de lista assim com dataTable, tu saber como fazer ?
Att

Por nada!
Mas e as outras informações sobre Contato/Endereço, vc conseguiu exibir na sua tabela?
Está com o mesmo problema que antes… Por algum motivo ele está tentando converter a String do “email” para Integer…
Da uma revisada nisso, é alguma coisa que ta passando despercebido ai…

Uma dica… quando for colocar algum código no seu post, usa as tags [*code] (sem o asterisco) e [/code], assim fica formatado, melhor pra gente visualizar…

Não consegui mostrar na tela nenhuma informação de contato e endereco, sempre este gerando o erro de antes, estou pesquisando o que pode ser.
Acredito que seja porque não estou imprimindo de maneira adequada as listas, porque tenho a primeira lista de clientes
List e isso eu consegui imprimir, mas pelo que entendi, terei tbm dentro desta lista um List de Contato, algo mais ou menos assim "imagino eu"
e é essa “segunda lista” que não estou conseguindo imprimir.
Estou pesquisando na web para ver se encontro algo, tu sabes como faz ?

Att e mto obrigado pela ajuda.

Mateus, consegui efetuar a impressao de tudo na tela.
Obrigado pela ajuda, valeu cara