Hibernate + JSF + Primefaces(dataTable)

Boa tarde galera eu tenho a seguintes classes mapeadas:

Cliente:

[code]@Entity
@Table(name=“Cliente”)
public class Cliente{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long codigo;
@Column
private String Nome;
@ManyToOne
@JoinColumn(name=“cidade”, nullable = false)
private Cidade cidade;

   // get e set abaixo

} [/code]

Cidade:

[code]@Entity
@Table(name=“Cidade”)
public class Cidade{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long codigo;
@Column
private String Nome;

    // get e set abaixo

} [/code]

Como pode ver cidade tem ligação com cliente, no caso para eu saber o nome da cidade do cliente faço assim:

Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); List<Cliente> listaCliente = (List<Cliente>) session.createQuery("FROM Cliente").list(); for (Cliente cliente: listaCliente) System.out.println(cliente.getNome() + "mora em " + cliente.getCidade().getNome()); session.getTransaction().commit();

até ai então beleza, mas quando vou colocar em um dataTable eu consigo botar os dados do clientes, menos os da cidade o meu Bean esta assim:

[code]package bean;

import java.util.List;

import hibernate.HibernateUtil;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.hibernate.Session;

import modelo.Cliente;

@ManagedBean(name = “beanCliente”)
@SessionScoped
public class BeanCliente {

List<Cliente> listaCliente;
Cliente Cliente = new Cliente();

public BeanCliente() {
	inicio();
}
	
public Cliente getCliente () {
	return Cliente ;
}

public void setCliente (Cliente Cliente ) {
	this.Cliente = Cliente ;
}

public List<Cliente> getListaCliente() {
	return listaCliente;
}

public void setListaCliente(List<Cliente> listaCliente) {
	this.listaCliente = listaCliente;
}

public void inicio() {
	Session session = HibernateUtil.getSessionFactory().getCurrentSession();
	session.beginTransaction();
	try {
		listaCliente = (List<Cliente>) session.createQuery("FROM Cliente").list();
		session.getTransaction().commit();
	} catch (Exception ex) {
		session.getTransaction().rollback();
		ex.printStackTrace();
	}				
}

}
[/code]

minha pagina:

[code]<?xml version='1.0' encoding='UTF-8' ?>

Clientes cadastrados
	<p:column headerText="Código" style="width: 150px;">
          	<h:outputText value="#{Cliente.codigo}"/>
	</p:column>
	
	<p:column headerText="Nome" style="width: 120px;">
          	<h:outputText value="#{Cliente.nome}"/>
	</p:column>

	<p:column headerText="Cidade" style="width: 150px;">
          	<h:outputText value="#{Cliente.cidade.nome}"/>
	</p:column>
	
  </p:dataTable>

</h:form>

[/code]

Quando eu vou abrir a pagina mostra todos os dados, menos o nome da cidade. Como é que faço pra exibir-la ? Abraços.

Simplesmente não aparece?

Eu faria o seguinte:

1 - Verificaria o console pra ver se nenhuma exceção está sendo lançada.
2 - Verificaria se a lista realmente está populada corretamente, e se o objeto Cidade está populado.

Não aparece nada, não da erro e quando eu faço isso:

Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); List<Cliente> listaCliente = (List<Cliente>) session.createQuery("FROM Cliente").list(); for (Cliente cliente: listaCliente) System.out.println(cliente.getNome() + "mora em " + cliente.getCidade().getNome()); session.getTransaction().commit();

aparece os dados da cidade, lembrando que isso eu rodo em uma classe java.