2

例外がNo Persistence provider for EntityManagerあり、何が原因かわかりません。これが私の設定ファイルです:

Persistence.xml(に格納されているsrc/META-INF

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    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_2_0.xsd">
    <persistence-unit name="HatifimJPA" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>entities.HatUser</class>
        <properties>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
            <property name="hibernate.connection.username" value="Benny" />
            <property name="hibernate.connection.password" value="oracle" />
            <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:xe" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
        </properties>
    </persistence-unit>
</persistence>

例外:

スレッド「メイン」の例外javax.persistence.PersistenceException:javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)のjavax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)にHatifimJPAという名前のEntityManagerの永続プロバイダーがありません。 tests.TestClass.main(TestClass.java:16)

唯一の違いは、私がブロックに入ろうとしEntityManagerpublic void main(...) { ... }いることですが、過去にそれを行うのに問題があったことを覚えていません。

誰かが私の問題がどこにあるのかを指摘するのを手伝ってもらえますか?

4

1 に答える 1

3

persistence.xmlをsrc/main / resources / META-INF /に配置し、次のコードをmainメソッドに配置してみてください。

EntityManagerFactory emf = Persistence.createEntityManagerFactory("HatifimJPA");
EntityManager em = emf.createEntityManager();
于 2012-10-09T14:21:38.933 に答える