[Resolvido] Levantando sessão do Hibernate com JPA

3 respostas
B
Estou tentando levantar na mão uma sessão do Hibernate com JPA através do seguinte código:
Configuration cfg = new AnnotationConfiguration().configure( "/META-INF/persistence.xml" );
    SessionFactory fct = cfg.buildSessionFactory();
Porém, estou sempre recebendo o seguinte erro:
110 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: /META-INF/persistence.xml(1) Document is invalid: no grammar found.
110 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: /META-INF/persistence.xml(1) Document root element "persistence", must match DOCTYPE root "null".
Exception in thread "main" org.hibernate.MappingException: invalid configuration
Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
Já procurei em todo lugar sobre o que devo fazer no meu arquivo persistence.xml para corrigir isto, porém, não encontrei nada que de fato funcionasse. A configuração do XML está assim:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0">

    <persistence-unit name="persistence-app" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
            <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:desenv" />
            <property name="hibernate.connection.username" value="desenv" />
            <property name="hibernate.connection.password" value="desenv" />

            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
            <property name="hibernate.hbm2ddl.auto" value="none" />
            
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>

</persistence>

Alguém pode me dar uma ajuda? Alguém tem ideia do que possa ser?
Obrigado desde já.

3 Respostas

L

O Hibernate não pode ser iniciado diretamente pelo persistence.xml, para ler esse arquivo vc deve usar o a classe javax.persistence.Persistence, que retorna um EntityManagerFactory. Para carregar da forma que vc ta querendo vc deve criar um hibernate.cfg.xml.

hugo.hlcxcx

Você está fazendo isso errado… Pra trabalhar com JPA vc deve usar:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("persistence-app"); EntityManager manager = factory.createEntityManager();

B

Vocês tinham razão. Muito obrigado pela ajuda, agora está funcionando perfeitamente.

Criado 28 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 3
Participantes 3