Erro ao criar EntityManagerFactory com banco Oracle 11g

Buenas!!!

Estou tentando fazer uma conexão usando o Hibernate JPA(em ambas as versões) com o banco oracle 11g do meu trabalho.
Porem, sempre que ele tenta criar o EntityManagerFactory ocorro uma Exception(javax.persistence.PersistenceException: [PersistenceUnit: Hibernate2PU] Unable to build EntityManagerFactory).
O algoritimo para fazer isso esta certo, ja que teste em um banco Postgres sem problemas; a conexão aparenta estar correta, pois consigo trazer todas as tabelas do banco e criar entitys automaticamente; o driver JDBC não é pois ja fiz uma conexão utilizando o java.sql com sucesso.

Quem souber se existe alguma coisa que tenha que se fazer a mais em banco Oracle, me ajude, por favor.

Agradeço desde ja.

O código é esse.

[code]
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JOptionPane;

/**
*

  • @author rodrigo.oliveira
    */
    public class ManagerDAO {

    private static EntityManager maneger;

    public static EntityManager getManager() {
    if (maneger == null) {
    new ManagerDAO();
    return maneger;
    }
    return maneger;
    }

    private ManagerDAO() {
    try {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory(“Hibernate2PU”);
    maneger = emf.createEntityManager();
    } catch (Exception ex) {
    //JOptionPane.showMessageDialog(null, “Erro ao criar conexão!\n” + ex.getMessage());
    ex.printStackTrace();
    }
    }
    }[/code]

Cola o log aí pra gente ver o que está acontecendo…

Opa, tai.

javax.persistence.PersistenceException: [PersistenceUnit: Hibernate2PU] Unable to build EntityManagerFactory at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33) at javaFlex.DAO.ManagerDAO.<init>(ManagerDAO.java:30) at javaFlex.DAO.ManagerDAO.getManager(ManagerDAO.java:22) at javaFlex.factorys.UsuarioFactoty.buscar(UsuarioFactoty.java:33) at hibernate2.Main.main(Main.java:22) Caused by: org.hibernate.HibernateException: unknown Oracle major version [11] at org.hibernate.dialect.DialectFactory$1.getDialectClass(DialectFactory.java:135) at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:65) at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39) at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669) ... 7 more Exception in thread "main" java.lang.NullPointerException at javaFlex.factorys.UsuarioFactoty.buscar(UsuarioFactoty.java:33) at hibernate2.Main.main(Main.java:22) Java Result: 1

Apenas um detalhe: estou fazendo um aplicação em Java-Flex. Mas estou testando as conexões em uma aplicação java normal, até funcionar. Depois paço para a aplicação em Flex.


Provavelmente o driver que você está utilizando para conectar no Oracle está desatualizado e não suporta a versão 11g. Ou você atualiza o driver ou tenta forçar o dialeto pra uma versão anterior, algo do tipo:

[code]<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>[/code]

Provavelmente o driver que você está utilizando para conectar no Oracle está desatualizado e não suporta a versão 11g. Ou você atualiza o driver ou tenta forçar o dialeto pra uma versão anterior, algo do tipo:

Ai cara, acho que resolvi o problema do Driver, porque agora esta dando um outro erro:

Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

Alguem pode me dizer o que quer dizer isso?

Você atualizou o driver ou mudou o dialeto?

Fabio, no meu caso sua solução de mudança do dialeto funcionou.