Problema de gravação de colunas com hibernate

Bom dia pessoa, estou com erro aqui que é muito estranho. Vou tentar explicar da melhor forma possível.
Estou fazendo um sistema de controle pessoal, para estudar mesmo pois só iniciante ainda. E estou com o seguinte problema.
Eu fiz o cadastro de usuários e cadastro de contas bancárias.
No cadastro de usuário, eu já deixei a opção para o usuário cadastrar sua primeira conta na hora do registro. Ele só pede o valor “descrição” e “saldo inicial”.
O problema é o seguinte:
Quando eu crio a conta já no cadastro, ele salva todos os dados perfeitamente no banco de dados.
Ao listar as contas ele me traz, descrição, data, saldo inicial, se é favorita ou não, e as opções de editar e excluir. Tudo isso é salvo perfeitamente no Banco de Dados.
Porém, quando eu tento adicionar uma nova conta na pagina de contas, o que acontece é o seguinte.
Eu coloco a descrição, coloco o saldo inicial.
Mas no banco de dados, ele não está pegando nem a Descrição e nem o Saldo Inicial. O resto vai normalmente.

Veja como fica no banco de dados, as 2 contas que estão com as informações completas foram criadas na hora do registro, as outras pela pagina de contas.

+-----------+-------------+------------+---------------------+---------------+----------+ | cod_conta | cod_usuario | des_conta | dat_cadastro | saldo_inicial | favorita | +-----------+-------------+------------+---------------------+---------------+----------+ | 8 | 1 | Banco Itau | 2011-09-13 18:24:54 | 1000 | | | 12 | 1 | NULL | 2011-09-13 21:56:32 | 0 | | | 13 | 1 | NULL | 2011-09-13 21:57:15 | 0 | | | 14 | 2 | Banco HSBC | 2011-09-13 21:58:24 | 10000 | | | 18 | 2 | NULL | 2011-09-13 22:56:59 | 0 | | +-----------+-------------+------------+---------------------+---------------+----------+
Alguém tem alguma idéia do que pode ser?
Obrigado.

Vou postar os codigos fontes, talvez alguem possa me ajudar.

Classe Conta

[code]package financeiro.conta;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.*;
import javax.persistence.Table;

import org.hibernate.annotations.*;

import financeiro.usuario.Usuario;

@Entity
@Table(name=“conta_bancaria”)
public class Conta implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
@Column(name="cod_conta")
private Integer	conta;

@ManyToOne
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name = "cod_usuario", nullable = false)
private Usuario	usuario;

@Column(name="des_conta")
private String descricao;

@Column(name="dat_cadastro", nullable = false, updatable = false)
private Date dataCadastro;

@Column(name="saldo_inicial")
private float saldoInicial;

@Column(name="favorita")
private boolean	favorita;

public Integer getConta() {
	return conta;
}

public void setConta(Integer conta) {
	this.conta = conta;
}

public Usuario getUsuario() {
	return usuario;
}

public void setUsuario(Usuario usuario) {
	this.usuario = usuario;
}

public String getDescricao() {
	return descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public Date getDataCadastro() {
	return dataCadastro;
}

public void setDataCadastro(Date dataCadastro) {
	this.dataCadastro = dataCadastro;
}

public float getSaldoInicial() {
	return saldoInicial;
}

public void setSaldoInicial(float saldoInicial) {
	this.saldoInicial = saldoInicial;
}

public boolean isFavorita() {
	return favorita;
}

public void setFavorita(boolean favorita) {
	this.favorita = favorita;
}

@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((conta == null) ? 0 : conta.hashCode());
	result = prime * result + ((dataCadastro == null) ? 0 : dataCadastro.hashCode());
	result = prime * result + ((descricao == null) ? 0 : descricao.hashCode());
	result = prime * result + (favorita ? 1231 : 1237);
	result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
	result = prime * result + Float.floatToIntBits(saldoInicial);
	return result;
}

@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (obj == null)
		return false;
	if (getClass() != obj.getClass())
		return false;
	Conta other = (Conta) obj;
	if (conta == null) {
		if (other.conta != null)
			return false;
	} else if (!conta.equals(other.conta))
		return false;
	if (dataCadastro == null) {
		if (other.dataCadastro != null)
			return false;
	} else if (!dataCadastro.equals(other.dataCadastro))
		return false;
	if (descricao == null) {
		if (other.descricao != null)
			return false;
	} else if (!descricao.equals(other.descricao))
		return false;
	if (favorita != other.favorita)
		return false;
	if (usuario == null) {
		if (other.usuario != null)
			return false;
	} else if (!usuario.equals(other.usuario))
		return false;
	if (Float.floatToIntBits(saldoInicial) != Float.floatToIntBits(other.saldoInicial))
		return false;
	return true;
}

}[/code]

Classe ContaDAO

package financeiro.conta;

import java.util.List;

import financeiro.usuario.Usuario;

public interface ContaDAO {

	public void salvar(Conta conta);

	public void excluir(Conta conta);

	public Conta carregar(Integer conta);

	public List<Conta> listar(Usuario usuario);

	public Conta buscarFavorita(Usuario usuario);
}

Classe ContaDAOHibernate

package financeiro.conta;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import financeiro.usuario.Usuario;

public class ContaDAOHibernate implements ContaDAO {

	private Session	session;

	public void setSession(Session session) {
		this.session = session;
	}

	@Override
	public void excluir(Conta conta) {
		this.session.delete(conta);
	}

	@Override
	public void salvar(Conta conta) {
		this.session.saveOrUpdate(conta);
	}

	@Override
	public Conta carregar(Integer conta) {
		return (Conta) this.session.get(Conta.class, conta);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Conta> listar(Usuario usuario) {

		Criteria criteria = this.session.createCriteria(Conta.class);
		criteria.add(Restrictions.eq("usuario", usuario));

		return criteria.list();
	}

	@Override
	public Conta buscarFavorita(Usuario usuario) {

		Criteria criteria = this.session.createCriteria(Conta.class);
		criteria.add(Restrictions.eq("usuario", usuario));
		criteria.add(Restrictions.eq("favorita", true));

		return (Conta) criteria.uniqueResult();
	}
}

Classe ContaRN

package financeiro.conta;

import java.util.Date;
import java.util.List;

import financeiro.usuario.Usuario;
import financeiro.util.DAOFactory;

public class ContaRN {

	private ContaDAO contaDAO;

	public ContaRN() {
		this.contaDAO = DAOFactory.criarContaDAO();
	}

	public List<Conta> listar(Usuario usuario) {
		return this.contaDAO.listar(usuario);
	}

	public Conta carregar(Integer conta) {
		return this.contaDAO.carregar(conta);
	}

	public void salvar(Conta conta) {
		conta.setDataCadastro(new Date());
		this.contaDAO.salvar(conta);
	}

	public void excluir(Conta conta) {
		this.contaDAO.excluir(conta);
	}

	public void tornarFavorita(Conta contaFavorita) { 
		Conta conta = this.buscarFavorita(contaFavorita.getUsuario());
		if (conta != null) {
			conta.setFavorita(false);
			this.contaDAO.salvar(conta);
		}

		contaFavorita.setFavorita(true);
		this.contaDAO.salvar(contaFavorita);
	}

	public Conta buscarFavorita(Usuario usuario) {
		return this.contaDAO.buscarFavorita(usuario);
	}
}

Classe ContaBean

package financeiro.web;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import financeiro.conta.Conta;
import financeiro.conta.ContaRN;
import financeiro.web.util.ContextoUtil;

@ManagedBean(name="contaBean")
@RequestScoped
public class ContaBean {

private Conta selecionada = new Conta();
private List<Conta> lista = null;

public void salvar(){
	ContextoBean contextoBean = ContextoUtil.getContextoBean();
	this.selecionada.setUsuario(contextoBean.getUsuarioLogado());
	ContaRN contaRN = new ContaRN();
	contaRN.salvar(this.selecionada);
	this.selecionada = new Conta();
	this.lista = null;
}

public void editar(){
	
}

public void excluir(){
	ContaRN contaRN = new ContaRN();
	contaRN.excluir(this.selecionada);
	this.selecionada = new Conta();
	this.lista = null;
}

public void tornarFavorita(){
	ContaRN contaRN = new ContaRN();
	contaRN.tornarFavorita(this.selecionada);
	this.selecionada = new Conta();
}

	public Conta getSelecionada() {
		return selecionada;
	}

	public void setSelecionada(Conta selecionada) {
		this.selecionada = selecionada;
	}

	public List<Conta> getLista() {
		if(this.lista == null){
			ContextoBean contextoBean = ContextoUtil.getContextoBean();
			ContaRN contaRN = new ContaRN();
			this.lista = contaRN.listar(contextoBean.getUsuarioLogado());
		}
		
		return this.lista;
	}

	public void setLista(List<Conta> lista) {
		this.lista = lista;
	}
	
	
	
}

Classe UsuarioBean (onde eu inserir a opçao de cadastrar conta na hora do registro de usuario.

package financeiro.web;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import financeiro.conta.Conta;
import financeiro.conta.ContaRN;
import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioRN;

@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {


	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	public void setLista(List<Usuario> lista) {
		this.lista = lista;
	}

	private Usuario usuario = new Usuario();
	private String confirmarSenha;
	private List<Usuario> lista;
	private String destinoSalvar;
	private Conta conta = new Conta();

	public String novo() {
		this.destinoSalvar = "usuarioSucesso";
		this.usuario = new Usuario();
		this.usuario.setAtivo(true);
		return "usuario";

	}

	public String editar(){
		this.confirmarSenha = this.usuario.getSenha();
		return "/publico/usuario";
	}
	
	public String salvar() {
		FacesContext context = FacesContext.getCurrentInstance();

		String senha = this.usuario.getSenha();
		if (!senha.equals(this.confirmarSenha)) {
			FacesMessage facesMessage = new FacesMessage(
					"A senha não foi informada corretamente");
			context.addMessage(null, facesMessage);
			return null;
		}
		UsuarioRN usuarioRN = new UsuarioRN();
		usuarioRN.salvar(this.usuario);
		
		if(this.conta.getDescricao() != null){
			this.conta.setUsuario(this.usuario);
			this.conta.setFavorita(true);
			ContaRN contaRN = new ContaRN();
			contaRN.salvar(this.conta);
		}
		return this.destinoSalvar;
	}
	
	public String excluir(){
		UsuarioRN usuarioRN = new UsuarioRN();
		usuarioRN.excluir(this.usuario);
		this.lista = null;
		return null;
	}
	
	public String ativar(){
		if(this.usuario.isAtivo()){
			this.usuario.setAtivo(false);
		} else {
			this.usuario.setAtivo(true);
		}
			UsuarioRN usuarioRN = new UsuarioRN();
			usuarioRN.salvar(this.usuario);
			return null;
	}
	
	public List<Usuario> getLista(){
		if(this.lista == null){
			UsuarioRN usuarioRN = new UsuarioRN();
			this.lista = usuarioRN.listar();
		}
		return this.lista;
	}
	
	public String atribuirPermissao(Usuario usuario, String permissao){
		this.usuario = usuario;
		java.util.Set<String> permissoes = this.usuario.getPermissao();
		if(permissoes.contains(permissao)){
			permissoes.remove(permissao);
		} else {
			permissoes.add(permissao);
		}
		return null;
	}

	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((confirmarSenha == null) ? 0 : confirmarSenha.hashCode());
		result = prime * result + ((conta == null) ? 0 : conta.hashCode());
		result = prime * result
				+ ((destinoSalvar == null) ? 0 : destinoSalvar.hashCode());
		result = prime * result + ((lista == null) ? 0 : lista.hashCode());
		result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
		return result;
	}
	
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		UsuarioBean other = (UsuarioBean) obj;
		if (confirmarSenha == null) {
			if (other.confirmarSenha != null)
				return false;
		} else if (!confirmarSenha.equals(other.confirmarSenha))
			return false;
		if (conta == null) {
			if (other.conta != null)
				return false;
		} else if (!conta.equals(other.conta))
			return false;
		if (destinoSalvar == null) {
			if (other.destinoSalvar != null)
				return false;
		} else if (!destinoSalvar.equals(other.destinoSalvar))
			return false;
		if (lista == null) {
			if (other.lista != null)
				return false;
		} else if (!lista.equals(other.lista))
			return false;
		if (usuario == null) {
			if (other.usuario != null)
				return false;
		} else if (!usuario.equals(other.usuario))
			return false;
		return true;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String getConfirmarSenha() {
		return confirmarSenha;
	}

	public void setConfirmarSenha(String confirmarSenha) {
		this.confirmarSenha = confirmarSenha;
	}

	public String getDestinoSalvar() {
		return destinoSalvar;
	}
	
	public void setDestinoSalvar(String destinoSalvar) {
		this.destinoSalvar = destinoSalvar;
	}
	
	
}

e os JSF
Tela de cadastro de conta

<?xml version="1.0" encoding="UTF-8" ?>
<!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:sec="http://www.springframework.org/security/facelets/tags">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Cadastro de Contas</title>
</h:head>
<h:body>
	<h1>Cadastro de Contas</h1>
	<h:form id="edicao">
		<h:messages />
		<h:inputHidden value="#{contaBean.selecionada.conta }" />
		<h:inputHidden value="#{contaBean.selecionada.favorita }" />
		<h:panelGrid columns="2">
			<h:outputLabel value="Descrição: " for="descricao" />
			<h:inputText id="descricao"
				value="#{contaBean.selecionada.descricao }" required="true"
				maxLength="45" />
			<h:outputLabel value="Saldo Inicial: " for="saldoInicial" />
			<h:inputText id="saldoInicial"
				value="#{contaBean.selecionada.saldoInicial }" size="10">
				<f:convertNumber minFractionDigits="2" />
			</h:inputText>
			<h:commandButton value="Salvar" action="#{contaBean.salvar }">
				<f:ajax excute="@form" render=":edicao :listagem" />
			</h:commandButton>
		</h:panelGrid>


	</h:form>

	<h:form id="listagem">
		<h:dataTable value="#{contaBean.lista }" var="conta"
			rendered="#{!empty contaBean.lista }">
			<h:column>
				<f:facet name="header">Descrição</f:facet>
			#{conta.descricao}
			</h:column>
			<h:column>
				<f:facet name="header">Data Cadastro</f:facet>
				<h:outputText value="#{conta.dataCadastro }">
					<f:convertDateTime pattern="dd/MM/yyyy" />
				</h:outputText>
			</h:column>
			<h:column>
				<f:facet name="header">Saldo Inicial</f:facet>
				<h:outputText value="#{ conta.saldoInicial}"
					style="text-align: right; display:block;">
					<f:convertNumber minFractionDigits="2" />
				</h:outputText>
			</h:column>
			<h:column>
				<h:commandLink action="#{contaBean.tornarFavorita }">
					<f:ajax execute="@this" render=":listagem" />
					<h:graphicImage library="imagens"
						name="favorita16_#{conta.favorita }.png" />
					<f:setPropertyActionListener value="#{conta }"
						target="#{contaBean.selecionada }" />
				</h:commandLink>
			</h:column>
			<h:column>
				<h:commandLink>
					<f:ajax execute="@this" render=":edicao" />
					<h:graphicImage library="imagens" name="editar16.png" />
					<f:setPropertyActionListener value="#{conta }"
						target="#{contaBean.selecionada }" />
				</h:commandLink>
			</h:column>
			<h:column>
				<h:commandLink action="#{contaBean.excluir }">
					<f:ajax execute="@this" render=":listagem" />
					<h:graphicImage library="imagens" name="excluir16.png" />
					<f:setPropertyActionListener value="#{conta }"
						target="#{contaBean.selecionada }" />
				</h:commandLink>
			</h:column>
		</h:dataTable>
	</h:form>

</h:body>
</html>

E no cadastro de usuario

<?xml version="1.0" encoding="UTF-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<title>Cadasro de Usuarios</title>
</h:head>
<h:body>
	<h1>Cadastro de Usuários</h1>

	<h:form id="cadastro">
		<h:messages />
		<h:inputHidden value="#{usuarioBean.usuario.codigo }" />
		<h:inputHidden value="#{usuarioBean.usuario.ativo }" />
		<h:inputHidden value="#{usuarioBean.destinoSalvar}" />

		<h:panelGrid columns="2">
			<h:outputLabel value="Nome" for="nome" />
			<h:inputText id="nome" Label="Nome"
				value="#{usuarioBean.usuario.nome }" size="30" maxLength="30"
				required="true" requiredMessage="Por favor, insira um nome">
				<f:validateLength minimum="10" maximum="30" />
			</h:inputText>
			<h:outputLabel value="Data Nascimento" for="data" />
			<h:inputText id="data" label="Data Nascimento"
				value="#{usuarioBean.usuario.nascimento}" size="10" maxlength="10"
				required="false">
				<f:convertDateTime pattern="dd/MM/yyyy" />
			</h:inputText>
			<h:outputLabel value="Celular" for="celular" />
			<h:inputText id="celular" label="Celular"
				value="#{usuarioBean.usuario.celular}" size="10" />
			<h:outputLabel value="E-mail" for="email" />
			<h:panelGroup>
				<h:inputText id="email" label="E-mail"
					value="#{usuarioBean.usuario.email}" size="50" required="true"
					validatorMessage="e-mail inválido">
					<f:validateRegex pattern="[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+" />
				</h:inputText>
				<h:message for="email" />
			</h:panelGroup>

			<h:outputLabel value="Idioma" for="idioma" />
			<h:selectOneMenu id="idioma" value="#{usuarioBean.usuario.idioma}">
				<f:selectItem itemValue="pt_BR" itemLabel="Português" />
				<f:selectItem itemValue="en_US" itemLabel="English" />
				<f:selectItem itemValue="es_ES" itemLabel="Espanol" />
			</h:selectOneMenu>

			<h:outputLabel value="Login" for="login" />
			<h:inputText id="login" label="Login"
				value="#{usuarioBean.usuario.login}" size="15" maxlength="15"
				required="true"
				validatorMessage="Login deve ter no minimo 5 e no máximo 15 caracteres, e só pode ter simbolos '.' e '_'. ">
				<f:validateRegex pattern="([a-z]|[0-9]|[.]|[_]){2,15}" />
			</h:inputText>

			<h:outputLabel value="Senha" for="senha" />
			<h:inputSecret id="senha" label="Senha"
				value="#{usuarioBean.usuario.senha}" size="10" maxlength="10"
				required="true" redisplay="true" />

			<h:outputLabel value="Confirmar senha" for="confirmarSenha" />
			<h:inputSecret id="confirmarSenha" label="Confirmar senha"
				value="#{usuarioBean.confirmarSenha}" size="10" maxlength="10"
				required="true" redisplay="true" />

		</h:panelGrid>
		<h:panelGroup rendered="#{empty contextoBean.usuarioLogado}">
		<fieldset><legend>Conta Inicial</legend>
		<h:panelGrid columns="2">
		
		<h:outputLabel value="Descrição" for="descricao" />
		<h:inputText id="descricao" label="Descrição" value="#{usuarioBean.conta.descricao}" required="true" maxlength="45" />
		<h:outputLabel value="Saldo inicial" for="saldoInicial" />
		<h:inputText id="saldoInicial" label="Saldo Inicial" value="#{usuarioBean.conta.saldoInicial}" size="10">
		<f:convertNumber minFractionDigits="2" />
		</h:inputText>
		</h:panelGrid>
		
		</fieldset>
		</h:panelGroup>
		<h:commandButton action="#{usuarioBean.salvar}" value="Salvar" />
		
		
	</h:form>

</h:body>
</html>

Obrigado.
[/code]

Obrigado.

galera tá ocupada ou n tem solução mesmo?
Abraço!
Valeu!