Erro Hibernate

17 respostas
diogoprosoft

Galera estou aprendendo Hibernate e estou fazendo o exemplo da apostila caelum e está dando o seguinte erro

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).

log4j:WARN Please initialize the log4j system properly.

Exception in thread main org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.

at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:233)

at org.hibernate.dialect.Dialect.getDialect(Dialect.java:211)

at org.hibernate.dialect.Dialect.getDialect(Dialect.java:226)

at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:86)

at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:61)

at br.com.caelum.hibernate.GeraTabelas.main(GeraTabelas.java:13)

Java Result: 1

O que será que fiz de errado :frowning:

17 Respostas

G

Veja bem

Exception in thread "main" org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.

No seu hibernate.cgf.xml você tem que setar o hibernate.dialect, de acordo com o banco de dados que você está utilizando.
No meu caso ele ficou assim:

<property name="hibernate.dialect">
			org.hibernate.dialect.OracleDialect
		</property>
Rafael_Steil

No arquivo hibernate.properties, coloque esta linha:

hibernate.dialect org.hibernate.dialect.MySQLDialect

Rafael

diogoprosoft

E o hibernate.cgf.xml deve ficar na pasta junto com as classes ou dentro do Meta-inf ou Web-inf?

Rafael_Steil

Se voce esta seguindo a apostila do FJ-21, voce nao precisa do hibernate.cfg.xml. De qualquer maneira, coloque-o no classpath (diretorio onde os .class ficam). Se voce usa Eclipse, uma opcao é coloca-lo no diretório src, e assim o arquivo é automaticamente copiado para o classpath ao compilar o projeto.

Rafael

diogoprosoft

Foi isso que eu pensei estou seguindo a apostila e não diz nada de hibernate.cfg.xml mais continua danda esse erro

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).

log4j:WARN Please initialize the log4j system properly.

Exception in thread main org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.

at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:233)

at org.hibernate.dialect.Dialect.getDialect(Dialect.java:211)

at org.hibernate.dialect.Dialect.getDialect(Dialect.java:226)

at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:86)

at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:61)

at br.com.caelum.hibernate.GeraTabelas.main(GeraTabelas.java:13)

Java Result: 1

o que posso fazer?

Rafael_Steil

Onde voce colocou o hibernate.properties?

Rafael

diogoprosoft

Em primeiro lugar quero pedir desculpa por não colocar o código /code

Coloquei o meu properties junto com as classes br.com.caelum.hibernate, todas a classes e o properties estão dentro da pasta hibernate

diogoprosoft

E ai galera que vai me ajudar :(

O erro é esse

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.
        at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:233)
        at org.hibernate.dialect.Dialect.getDialect(Dialect.java:211)
        at org.hibernate.dialect.Dialect.getDialect(Dialect.java:226)
        at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:86)
        at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61)
        at br.com.caelum.hibernate.GeraTabelas.main(GeraTabelas.java:13)
Java Result: 1
Minha Classe Produto
@ Entity
public class Produto {

    @Id @GeneratedValue
    private Long id;
    private String nome;
    private String descricao;
    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 getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Double getPreco() {
        return preco;
    }

    public void setPreco(Double preco) {
        this.preco = preco;
    }            
}
Classe GerarTabelas
public class GeraTabelas {

    public static void main(String[] args) {
        // Cria uma configuração para a classe Produto
        AnnotationConfiguration cfg = new AnnotationConfiguration();
        cfg.addAnnotatedClass(Produto.class);
        new SchemaExport(cfg).create(true, true);
    }
Classe HibernateFactory
public class HibernateFactory {

    private static SessionFactory factory;

    static {
        AnnotationConfiguration cfg = new AnnotationConfiguration();
        cfg.addAnnotatedClass(Produto.class);
        factory = cfg.buildSessionFactory();
     }
    
    public Session getSession() {
        return factory.openSession();
    }

ME AJUDEM POR FAVOR!!!!!!!!!

Rafael_Steil

O hibernate.properties esta na pasta errada. Considerando uma estrutura de diretorios como “src/br/com/caelum/hibernate”, o hibernate.properties tem que estar na pasta “src” (na raiz dela).

Voce esta usando o Eclipse ou fazendo via linha de comando?

Rafael

diogoprosoft

estou usando o netbeans6.0 :smiley:

diogoprosoft

[size=24] FUNCIONOU!!![/size]
Troquei o properties para o diretório src como o Rafael me disse

Valeu!!!

A

Olá,

estou tendo exatmente esse mesmo problema:

<blockquote>log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).

log4j:WARN Please initialize the log4j system properly.

Exception in thread “main” org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.

at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:233)

at org.hibernate.dialect.Dialect.getDialect(Dialect.java:211)

at org.hibernate.dialect.Dialect.getDialect(Dialect.java:226)

at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:86)

at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:61)

at Construtor.main(Construtor.java:31)

Java Result: 1

</blockquote>

Estou rodando o NetBeans 6.0 com um detalhe: um projeto de uma aplicação WEB.

E, infelizmente, as soluções indicadas nao funcionaram comigo.

Alguem tem alguma luz?

diogoprosoft

Cara eu tbm estou usando projeto web e quando fiz o exemplo da apostila so estava faltando colocar os properties na raiz src se vc quiser eu posso te mandar o exemplo por email para vc dar uma olhada

A

Foi só colocar no diretorio do classpath…
Mantive a copia no src e, agora, no build/classes

grato.

soul

Galera estou tendo o mesmo problema mas gostaria de usar o arquivo xml.
é uma aplicação web com netbeans 6.7

JonathanSSantos

Coloque no seu topico como resolvido… se ja foi resolvido!!

EHEHEH :smiley: :smiley:

toni.esteves

pessoal, tow com o msm problema, seugui a apostila tbm e ele dá erro no dialeto

meu hibernate.cfg.xml tah em Hibernate/src

o errp eh esse :

Exception in thread "main" org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.
	at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:256)
	at org.hibernate.dialect.Dialect.getDialect(Dialect.java:234)
	at org.hibernate.dialect.Dialect.getDialect(Dialect.java:249)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:121)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:91)
	at br.com.caelum.hibernate.GerarTabelas.main(GerarTabelas.java:12)

e meu hibernate.cfg.xml tah assim:

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



  <!-- Properties -->



  <!-- Database connection settings -->

  <property name="hibernate.connection.driver_class">

	org.postgresql.Driver

  </property>

  <property name="hibernate.connection.url">

	jdbc:postgresql://localhost/Caelumfj21

  </property>

  <property name="hibernate.connection.username">

	postgres

  </property>

  <property name="hibernate.connection.password">

	postgres

  </property>



  <!-- SQL dialect -->

  <property name="dialect">

	org.hibernate.dialect.PostgreSQLDialect

  </property>



  <!-- Show all queries on console -->

  <property name="hibernate.show_sql">true</property>

  <property name="hibernate.format_sql">true</property>

 </session-factory>

</hibernate-configuration>

Por favor me ajudem..vlwww

Criado 28 de maio de 2008
Ultima resposta 4 de mar. de 2011
Respostas 17
Participantes 7