2016-08-08 9 views
0

@PersistenceContextを使用してデータベースに接続するEJBプロジェクトの例があります。 これはうまくいきますが、私の新しいプロジェクトはEJBではないので、別の方法を考える必要があります。 は、だから私はこのような何かを思い付いた:javax.persistence.PersistenceException:No avaliacaoneomindという名前のEntityManagerの永続プロバイダ

EntityManagerFactory entityFactory = Persistence.createEntityManagerFactory("avaliacaoneomind"); 
EntityManager em = entityFactory.createEntityManager(); 

しかし、私はこれを行うとき、私はこのエラーを取得する:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named avaliacaoneomind

私が原因ときに私のpersistence.xmlが正しく、適切な場所にある知っています私は@PersistenceContext(name="avaliacaoneomind")をテストとして使用し、私のテーブルは自分のDB内に自動的に作成されます。 @PersistenceContextを自分のコードから削除すると、テーブルは作成されません。 このエラーを修正するにはどうすればよいですか?私は見つけることが可能なすべてのリンクを試してみましたが、どれも自分の問題を解決していないようです。

はベローは私のpersistence.xmlのです:あなたはJNDIルックアップを使用してEntityManagerを達成することができ

<?xml version="1.0" encoding="UTF-8"?> 
<persistence> 
    <!--Nome do contexto que configura o Provedor de Persistência --> 
    <persistence-unit name="avaliacaoneomind"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <jta-data-source>jdbc/avaliacaoneomind</jta-data-source> 
     <properties> 
      <property name="eclipselink.ddl-generation" value="create-or-extend-tables"/> 
      <property name="eclipselink.ddl-generation.output-mode" value="both" /> 
     </properties>  
    </persistence-unit> 
</persistence> 

答えて

0

Context initCtx = new InitialContext(); 
    javax.persistence.EntityManager entityManager = 
      (javax.persistence.EntityManager)initCtx.lookup(
        "java:comp/env/avaliacaoneomind" 
      ); 
関連する問題