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á?