Estou aprendendo Hibernate e construindo uma pequena aplicação usando-o. Porém estou recebendo esse rastreamento de exceção:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.HibernateException: No CurrentSessionContext configured!
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
at dados.aplicacao.usuario.UsuarioDAOHibernate.cadastrarUsuario(UsuarioDAOHibernate.java:25)
at dados.aplicacao.usuario.UsuarioDAOHibernate.main(UsuarioDAOHibernate.java:40)
Segue as classes e os xml´s do sistema:
package negocio.aplicacao.usuario;
public class Usuario {
private long codigo;
private String nome;
private String login;
private String senha;
private int tipoDeUsuario;
public Usuario(){}
public Usuario(String nome, String login, String senha, int tipo) {
super();
this.setNome(nome);
this.setLogin(login);
this.setSenha(senha);
this.setTipoDeUsuario(tipo);
}
public void setCodigo(long codigo) {
this.codigo = codigo;
}
public long getCodigo() {
return codigo;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setLogin(String login) {
this.login = login;
}
public String getLogin() {
return login;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSenha() {
return senha;
}
public void setTipoDeUsuario(int tipo) {
this.tipoDeUsuario = tipo;
}
public int getTipoDeUsuario() {
return tipoDeUsuario;
}
public static class TipoDeUsuario{
public static final int FUNCIONARIO = 0;
public static final int GERENTE = 0;
public static final int ADMINISTRADOR = 0;
}
}
Criei um método main nessa classe DAO apenas para testar se o Hibernate estava de fato bem configurado.
package dados.aplicacao.usuario;
import org.hibernate.Session;
import util.HibernateUtil;
import negocio.aplicacao.usuario.Usuario;
public class UsuarioDAOHibernate implements UsuarioDAO {
private static UsuarioDAO instancia = null;
private UsuarioDAOHibernate(){}
public synchronized static UsuarioDAO getInstancia(){
if (instancia == null){
instancia = new UsuarioDAOHibernate();
}
return instancia;
}
public void cadastrarUsuario(Usuario usuario){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(usuario);
session.getTransaction().commit();
}
public void excluirUsuario(Usuario usuario){
}
public void editarUsuario(Usuario usuario){
}
public static void main(String[] args) {
UsuarioDAOHibernate.getInstancia().cadastrarUsuario(new Usuario("Usuario", "usuario", "123", 1));
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="negocio.aplicacao.usuario.Usuario" table="Usuario">
<!-- Primary Key -->
<id name="codigo" column="codigo" type="long">
<generator class="native"></generator>
</id>
<!-- Properties -->
<property name="nome" column="nome" type="string"/>
<property name="login" column="login" type="string"/>
<property name="senha" column="senha" type="string"/>
<property name="tipoDeUsuario" column="tipo_de_usuario" type="integer"/>
</class>
</hibernate-mapping>
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Configuração da conexão do BD -->
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:file:D:/BD/Plus Nutrir BD</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<!-- SQL Dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- Mappings -->
<mapping resource="dados/aplicacao/usuario/Usuario.hbm.xml"/>
</session-factory>
</hibernate-configuration>