Erro ao persistir o objeto

Estou desenvolvendo uma API para controle de usuário e ocorre o seguinte problema:

1104 [http-8084-5] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
1104 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
1104 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1104 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1104 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1104 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Cache provider: org.hibernate.cache.NoCacheProvider
1105 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1107 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1113 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1113 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1114 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1114 [http-8084-5] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1217 [http-8084-5] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1614 [http-8084-5] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
Nao foi possivel Salvar o usuario

CLASSE

UsuarioDAOHibernate
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

/**
 *
 * @author cristofe Rocha
 */

import br.ifrr.entity.*;
import java.util.List;
import org.hibernate.*;

public class UsuarioDAOHibernate implements UsuarioDAO {

    private Session sessao;
    private Transaction transacao;

    public void salvar(Usuario usuario) {
        Session seee = null;
        Transaction transacao2 = null;
        try {
            seee = HibernateUtil.getSessionFactory().openSession();
            transacao = seee.beginTransaction();
            seee.save(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Salvar o usuario");
        } finally {
            try {
                seee.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }
    public void novo (Usuario usuario) {
        Session seee = null;
        Transaction transacao2 = null;
        try {
            seee = HibernateUtil.getSessionFactory().openSession();
            transacao = seee.beginTransaction();
            seee.save(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Salvar o usuario");
        } finally {
            try {
                seee.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }


    public void Atualizar(Usuario usuario) {
        Session sessao = null;
        Transaction transacao = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            sessao.save(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Salva o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }

    public void Excluir(Usuario usuario) {
        Session sessao = null;
        Transaction transacao = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            sessao.delete(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel deletar o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }

    public List<Usuario> listar() {
        Session sessao = null;
        Transaction transacao = null;
        Query consulta = null;
        List<Usuario> resultado = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            consulta = sessao.createQuery("from usuario");
            resultado = consulta.list();
            transacao.commit();
            return resultado;
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Buscar a lista do usuario" + e.getMessage());
            throw new HibernateException(e);
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de Consulta !" + e.getMessage());

            }

        }
    }

    public Usuario BuscaUsuario(int valor) {
        Usuario usuario = null;
        Session sessao = null;
        Transaction transacao = null;
        Query consulta = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            consulta = sessao.createQuery("from USUARIO where id=:parametro");
            consulta.setInteger("parametro", valor);
            usuario = (Usuario) consulta.uniqueResult();
            transacao.commit();
            return usuario;
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Buscar o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

        return usuario;
    }

    void setSession(org.hibernate.classic.Session CurrentSession) {
    }

    
}[/code]

CLASSE
[code]
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

import br.ifrr.entity.*;
import java.util.List;

/**
 *
 * @author Cristofe Rocha
 */
public class UsuarioRN {

    private UsuarioDAOHibernate UsuarioDAOHibernate;

    public UsuarioRN() {
        this.UsuarioDAOHibernate = (UsuarioDAOHibernate) DAOFactory.criarUsuarioDAO();
    }

    public void excluir(Usuario usuario) {
        this.UsuarioDAOHibernate.Excluir(usuario);
    }

    public List<Usuario> listar() {
        return this.UsuarioDAOHibernate.listar();
    }

    public void novo(Usuario usuario) {
        Long codigo = usuario.getCodUsuario();
        if (codigo == null || codigo == 0) {
            this.UsuarioDAOHibernate.novo(usuario);
        } else {
            this.UsuarioDAOHibernate.Atualizar(usuario);

        }

        this.UsuarioDAOHibernate.novo(usuario);
    }

    public void salvar(Usuario usuario) {
        Long codigo = usuario.getCodUsuario();
        if (codigo == null || codigo == 0) {
            this.UsuarioDAOHibernate.salvar(usuario);
        } else {
            this.UsuarioDAOHibernate.Atualizar(usuario);

        }
        this.UsuarioDAOHibernate.salvar(usuario);
    }
}

[/code]
CLASSE 

[code]/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

import br.ifrr.entity.*;

/**
 *
 * @author Cristofe Rocha
 */
public interface UsuarioDAO {

    public void salvar(Usuario usuario);

    public void novo(Usuario usuario);
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

/**
 *
 * @author Cristofe Rocha
 */
public class DAOFactory {

    public static UsuarioDAO criarUsuarioDAO() {
        UsuarioDAOHibernate UsuarioDAO = new UsuarioDAOHibernate();
        UsuarioDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
        return UsuarioDAO;
    }

}


CLASSE

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import br.ifrr.entity.*;

/**
 *
 * @author Cristofe Rocha
 */
@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {

    private Usuario usuario = new Usuario();
    private String confirmaSenha;
    private List<Usuario> lista;

    public String novo() {
        this.usuario = new Usuario();
        UsuarioRN usuarioRN = new UsuarioRN();
        usuarioRN.novo(this.usuario);
        return "cadUsuario";
    }

    public String salvar() {
        FacesContext context = FacesContext.getCurrentInstance();

        String senha = this.usuario.getPasswd();
        if (!senha.equals(this.confirmaSenha)) {
            FacesMessage facesMessage = new FacesMessage("A senhas sao diferentes");
            context.addMessage(null, facesMessage);
            return null;
        }
        UsuarioRN usuarioRN = new UsuarioRN();
        usuarioRN.salvar(this.usuario);
        return "cadUsuario";

    }

    public String getConfirmaSenha() {
        return confirmaSenha;
    }

    public void setConfirmaSenha(String confirmaSenha) {
        this.confirmaSenha = confirmaSenha;
    }

    public Usuario getUsuario() {
        return usuario;
    }

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

CLASSE\

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.ifrr.entity;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author cristofe.rocha
 */
@Entity
@Table(name = "usuario")
@NamedQueries({
    @NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"),
    @NamedQuery(name = "Usuario.findByAtivo", query = "SELECT u FROM Usuario u WHERE u.ativo = :ativo"),
    @NamedQuery(name = "Usuario.findByPermissao", query = "SELECT u FROM Usuario u WHERE u.permissao = :permissao"),
    @NamedQuery(name = "Usuario.findByPasswd", query = "SELECT u FROM Usuario u WHERE u.passwd = :passwd"),
    @NamedQuery(name = "Usuario.findByLogin", query = "SELECT u FROM Usuario u WHERE u.login = :login"),
    @NamedQuery(name = "Usuario.findByCodUsuario", query = "SELECT u FROM Usuario u WHERE u.codUsuario = :codUsuario"),
    @NamedQuery(name = "Usuario.findByNome", query = "SELECT u FROM Usuario u WHERE u.nome = :nome")})
public class Usuario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Column(name = "ativo")
    private Integer ativo;
    @Column(name = "permissao")
    private Integer permissao;
    @Column(name = "passwd")
    private String passwd;
    @Column(name = "login")
    private String login;
    @Id
    @Basic(optional = false)
    @Column(name = "cod_usuario")
    private Long codUsuario;
    @Column(name = "nome")
    private Character nome;

    public Usuario() {
    }

    public Usuario(Long codUsuario) {
        this.codUsuario = codUsuario;
    }

    public Integer getAtivo() {
        return ativo;
    }

    public void setAtivo(Integer ativo) {
        this.ativo = ativo;
    }

    public Integer getPermissao() {
        return permissao;
    }

    public void setPermissao(Integer permissao) {
        this.permissao = permissao;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public Long getCodUsuario() {
        return codUsuario;
    }

    public void setCodUsuario(Long codUsuario) {
        this.codUsuario = codUsuario;
    }

    public Character getNome() {
        return nome;
    }

    public void setNome(Character nome) {
        this.nome = nome;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codUsuario != null ? codUsuario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuario)) {
            return false;
        }
        Usuario other = (Usuario) object;
        if ((this.codUsuario == null && other.codUsuario != null) || (this.codUsuario != null && !this.codUsuario.equals(other.codUsuario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.ifrr.entity.Usuario[codUsuario=" + codUsuario + "]";
    }

}

CLASSE

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.ifrr.usuario;


import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;

/**
 * Hibernate Utility class with a convenient method to get Session Factory object.
 *
 * @author Cristofe Rocha
 */
public class HibernateUtil {
    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Inicio da Fabrica de Sessao Falha !!." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

Banco de dados POSTGRES

Table: usuario

-- DROP TABLE usuario;

CREATE TABLE usuario
(
  ativo integer,
  permissao integer,
  passwd text,
  "login" character varying,
  cod_usuario bigserial NOT NULL,
  nome character(1),
  CONSTRAINT cod_usuario PRIMARY KEY (cod_usuario)
)
WITH (
  OIDS=FALSE,
  autovacuum_enabled=true
);
ALTER TABLE usuario OWNER TO postgres;
GRANT ALL ON TABLE usuario TO public;
GRANT ALL ON TABLE usuario TO postgres;
GRANT SELECT("login"), UPDATE("login"), INSERT("login"), REFERENCES("login") ON usuario TO public;

Simplesmente nao persiste!

Agradeço desde já?

Duvido muito que alguém vá ler todo esse código sem saber o que está procurando… então vão algumas perguntas:

  • Você tem uma StackTrace mais completa?
  • Você tem uma explicação melhor do seu problema?
  • Você disse que simplesmente não persiste. O método do ManagedBean é invocado? o método do DAO?

esse cara é metido,
como vai entender o problema no catch se nem ao menos colocou um e.getMessage(); ou algo melhor para tratar o erro;