Primefaces nao carrega relacionamento em nova insercao

Ola pessoal ;

              Estou montando um sistema de vendas de musicas por download para fins de estudo , estou utilizando IDE eclipse,hibernate 3.0 ,jsf 2.0 e primefaces 3.0,mas estou com um problema de relacionamento com o primefaces . Fiz uma dataTable que recebe o objeto cantor e mostra na tela o nome,genero e imagem .O atributo genero é um relacionamento ManyToOne ,quando apenas visualizo a lista de cantores,traz todos os atributos certos,mas quando adiciono um novo cantor,a coluna genero do novo cantor nao é preenchida ,nos debugs que eu fiz percebi que o ultimo objeto adicionado na lista o atributo genero carrega apenas o Id,mas nao carrega o nome do genero. Segue codigos

ManagedBean:

[code]
@ManagedBean(name=“cantorLogic”)
@SessionScoped
public class CantorLogic {
private Cantor cantor;
private DaoFactory daoFactory;
private Listcantores;
private Listgeneros;
private String caminhoBanco;
private Genero genero;
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);

public CantorLogic(){
	DaoFactory daoFactory = new DaoFactory();
	this.daoFactory = daoFactory;
	this.cantor = new Cantor();
	cantor.setGenero(new Genero());
	
	
}

public String novo(){
	this.cantor = new Cantor();
	cantor.setGenero(new Genero());
	session.setAttribute("IMAGEM",null);
	return "cantor";
}

public String adicionaOuAtualiza(){
	this.daoFactory.beginTransaction();
	caminhoBanco = (String) session.getAttribute("IMAGEM");
	cantor.setImagem(caminhoBanco);
	if(cantor.getId()==0){
		this.daoFactory.getCantorDao().adiciona(cantor);
	}
	else {
		this.daoFactory.getCantorDao().atualiza(cantor);
	}
	this.daoFactory.commit();
	return "listacantor";
}
public void remove(){
	try{
	this.daoFactory.beginTransaction();
	this.daoFactory.getCantorDao().remove(cantor);
	this.daoFactory.commit();
	JSFUtil.addSuccessMessage("Cantor removido com sucesso");
	}catch(ConstraintViolationException e){
		JSFUtil.addErrorMessage("Cantor possui album(s) cadastrado(s),nao pode ser excluido");
	}
}



public List <Genero> getListaGenero(){
	generos = this.daoFactory.getGeneroDao().listaTudo();
	return generos;
	}
public List <Cantor> getLista(){
	cantores = null;
	this.cantores = null;
	this.cantores = this.daoFactory.getCantorDao().listaTudo();
	return cantores;
	}



public List<Genero> getGeneros() {
	return generos;
}


public void setCaminhoBanco(String caminhoBanco) {
	this.caminhoBanco = caminhoBanco;
}

public String getCaminhoBanco() {
	return caminhoBanco;
}

public List<Cantor> getCantores() {
	return cantores;
}

public Cantor getCantor() {
	return cantor;
}

public void setCantor(Cantor cantor) {
	this.cantor = cantor;
}

public void setCantores(List<Cantor> cantores) {
	this.cantores = cantores;
}

public void setGeneros(List<Genero> generos) {
	this.generos = generos;
}

public void setGenero(Genero genero) {
	this.genero = genero;
}

public Genero getGenero() {
	return genero;
}

}[/code]

Xhtml :

[img][/img]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
<link rel = "stylesheet" type = "text/css" href = "/loja/resourses/estilo.css" />
<h:title>cantores</h:title>
</h:head>
<h:body>
<p><a href="../menu.xhtml">Menu principal</a></p>
<h:panelGroup>
<h:form>
<h1>cantores</h1>
<p:messages/><h:outputLabel/>
<h:commandButton class ="novo" action = "#{cantorLogic.novo}"  />
</h:form>
<h:form id="form">
<h:commandButton action="cantor"  class="editar" />
<h:commandButton actionListener="#{cantorLogic.remove}"  class="excluir" update ="tabelacantores"/>
<p:dataTable id="tabelacantores" value ="#{cantorLogic.lista}" var="cantor" rowKey="#{cantor.id}" selectionMode="single" selection="#{cantorLogic.cantor}" >
	<p:column>
		<f:facet name="header">
			<h:outputText value="Nome" />
		</f:facet>
		<h:outputText value="#{cantor.nome}" /> 
	</p:column >
<p:column sortBy="#{cantor.genero}" filterBy="#{cantor.genero}" filterMatchMode="contains">
                            <f:facet name="header">
                                <h:outputText value="Genero" style="font-weight:bold" />
                            </f:facet>
                            <h:outputText value="#{cantor.genero.nome}"/>
                        </p:column>
<p:column>
		<f:facet name="header">
			<h:outputText value="Imagem" />
		</f:facet>
		<p:lightBox styleClass="imagebox">   
		<p:graphicImage value="#{cantor.imagem}"  /> 
		</p:lightBox> 
	</p:column >
</p:dataTable>
</h:form>
</h:panelGroup>
</h:body>
</html>