1

これはエンティティ Bean での私の最初の試みであり、次のエラーが繰り返し表示されます。

java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null

Netbeans 7.3 と GlassFish 3.1.2.2 サーバーを使用して、単純なエンティティー Bean の例を作成しました。私のpersistance.xmlファイルに問題があるようです。ただし、これを修正することはできません。読み上げました

JavaEE 6: java.lang.IllegalStateException: unitName null の EntityManagerFactory を取得できません

単純な EJB の unitName null の EntityManagerFactory を取得できません - nosferatum の回答を参照してください

しかし、何時間も経っても、これを完全に修正することはできませんでした。ディレクトリ構造のスクリーンショットと XML ファイルのコードを添付して、誰かが間違いを指摘してくれることを願っています。

persistance.xml : (NetBeans によって自動生成されたコード)

<?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="EnterpriseApplication3-ejbPU" transaction-type="JTA">
    <jta-data-source>TestDatabase</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
  </persistence-unit>
</persistence>

プロジェクトのディレクトリ構造 (NetBeans によって自動配置された Persistance.xml

失敗コード:

宣言 :

// This injects the default entity manager factory
    @PersistenceUnit
    private EntityManagerFactory emf;

呼び出しのポイント:

EntityManager em = emf.createEntityManager();

また、何人かの人々がこれをしているようです:

@PersistenceContext(unitName = "myPU")

また、persistance.xml で同じ名前を持っています。すべてのプロジェクト ファイルをすばやく検索しましたが、@PersistenceContext アノテーションが見つかりませんでした。しかし、私は追加しました

@PersistenceContext(unitName = "EnterpriseApplication3-ejbPU")

EntityManagerFactory を呼び出す私のコードに。しかし、まだ成功していません:(

4

1 に答える 1

0

これを試してください:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("EnterpriseApplication3-ejbPU");
EntityManager em = emf.createEntityManager();
于 2013-03-19T04:04:24.790 に答える