Erro no hibernate

2 respostas
S

Estou com o seguinte erro no hibernate e não estou conseguindo visualizar o erro. Se alguém souber o que pode ser, agradeço a ajuda.
Classe Produto

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Produto {
	
	@Id
	@GeneratedValue
	private Long id;
	private String nome;
	private String desc;
	private double preco;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getDesc() {
		return desc;
	}
	public void setDesc(String desc) {
		this.desc = desc;
	}
	public double getPreco() {
		return preco;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}	
}

Classe main

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class GeraTabela {

	public static void main(String[] args) {
		
		AnnotationConfiguration conf = new AnnotationConfiguration();
		conf.addAnnotatedClass(Produto.class);
		new SchemaExport(conf).create(true, false);
	}
}

Erro que retorna

Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
	at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152)
	at GeraTabela.main(GeraTabela.java:8)

Atc,

2 Respostas

thiago.correa

Veja se esse é o seu caso http://www.slf4j.org/faq.html#IllegalAccessError

hvivox

Parceiro, da uma olhada na documentação do hibernate. Há documentação até em portugues. Na verdade pro teu sistema funcionar está faltando algumas linhas de código. Na documentação há um exemplo de uma classe de conexão como o banco verifica isso. Assim na boa A java Magazine tem algumas revistas muito boas sobre hibernate. Além disso é disponibilizado o codigo, aprendi muita coisa lendo essas revistas.

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

import br.com.abstractlayer.persistence.pojo.Alimento;
import br.com.abstractlayer.persistence.pojo.Cliente;
import br.com.abstractlayer.persistence.pojo.Produtos;

public class GerarTabela {

	public static void main(String[] args) {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Cliente.class);
		cfg.addAnnotatedClass(Alimento.class);
		cfg.addAnnotatedClass(Produtos.class);
		
		SchemaExport se = new SchemaExport(cfg);
		se.create(false, true);
	}
}

essa classe é utilizada para faze a engenharia reversa. Quero dizer que vc primeiro cria a classe e atraves dessa classe associada a outro comandos e classes é gerado automaticamente o seu banco. Vc havia me dito que queria rodar um aplicativo tipo consultar, salvar, atualizar entre outros.

da uma estudada em anotações tenta mapear classes manualmente e cria o banco manualmente. É mais trabalhoso, porém é mto importante pra quem tá aprendendo.
Lí em algum lugar a seguinte frase “Pra ser um bom desenvolvedor é preciso ler e escrever mto código.” realmente não tem outra. Se eu colocar tudo bonitinho pra vc vou está lhe alejando de certa forma.

ok!

blz.

Criado 4 de janeiro de 2010
Ultima resposta 4 de jan. de 2010
Respostas 2
Participantes 3