1

私は、Eclipse IDE を使用して Postgres で動作する非常に基本的なスタンドアロン JPA の例を取得しようとしています。

次のようなpersistance.xmlが定義されています。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
    <persistence-unit name="sample" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>package.class</class>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.logging.level" value="INFO" />
            <property name="eclipselink.jdbc.driver" value="org.postgresql.Driver" />
            <property name="eclipselink.jdbc.url"
                value="jdbc:postgresql://localhost:5432/sample" />
            <property name="eclipselink.jdbc.user" value="scott" />
            <property name="eclipselink.jdbc.password" value="tiger" />
        </properties>
    </persistence-unit>
</persistence>

このファイルは src/main/resources/META-INF フォルダーにあります。Eclipse のソース ディレクトリに src/main/resources フォルダーを含めました。User という名前の単純なエンティティが 1 つ定義されています。そのエンティティを作成しようとすると

EntityManagerFactory entityManagerFactory 
         = Persistence.createEntityManagerFactory("sample");
     EntityManager em = entityManagerFactory.createEntityManager();
     EntityTransaction tx = em.getTransaction();
     try {
         User user = new User();
         user.setEnabled(false);
         user.setEmailId("test@test.com");
         tx.begin();
          em.persist(user);
         tx.commit();
     } catch (Exception e) {
         em.getTransaction().rollback();
     } finally {
         em.close();
     }

次の例外が発生します-Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named sample

私のpersistance.xmlファイルが取得されていないようです。JPAフレームワークはpersistance.xmlファイルをロードするためにどこを見ますか?

4

1 に答える 1

6

これはばかげた間違いでした。このファイルは、persistance.xml ではなく、persistence.xml と呼ばれる必要があります。

于 2013-02-04T22:14:31.317 に答える