Erro com o Hibernate

4 respostas
bcartaxo

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>

4 Respostas

F

Olá,

Ta faltando configurar a propriedade current_session_context_class.

Mais informações.

http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#architecture-current-session

]['s

bcartaxo

???

bcartaxo

???

bcartaxo

??

Criado 8 de julho de 2007
Ultima resposta 8 de jul. de 2007
Respostas 4
Participantes 2