2013-09-25 4 views
0
  • 나는 받는다는 (퀵 스타트 원형)로 만든 간단한 자바 프로젝트JPA : 구성 지속성 제공

  • 나는이 샘 세션에 대한 JPA 지속성을 (코드가이 샘 문서에서 유래)

    구성하는 데 노력하고있어
    1. 나는 내가 META-I를 만들어

    2. 내 pom.xml 파일에이 샘 - 지속성-JPA, Bitronix 트랜잭션 관리자와 com.h2database 종속성을 추가 내 Eclipse 프로젝트의 "src/META-INF"에있는 Source-Folder로 NF 폴더

    3. 거기에 persistence.xml 및 jndi.properties 파일을 추가했습니다. 내가 다음 코드를 한 내의 TestCase에서

    4. :

    [...] 의 EntityManagerFactory 기전력 = Persistence.createEntityManagerFactory ("org.drools.persistence.jpa"); [...] 테스트를 실행하는 경우

, 나는 다음과 같은 예외가 얻을 :

javax.persistence.PersistenceException : EntityManager의 이름 org.drools.persistence.jpa 없음 지속성 제공자를 javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:47)에서 javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:69) com.sample.MyTest.testJPA (MyTest.java:112)에서 에서

내가 META-INF 또는 persistence.xml (아래 참조)을 만든 방식에 문제가 있다는 것은 확실합니다. 어떤 제안?

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" 
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" 
    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 
    http://java.sun.com/xml/ns/persistence/orm 
    http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"> 
    <persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>jdbc/testDatasource</jta-data-source> 
     <class>org.drools.persistence.info.SessionInfo</class> 
     <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class> 
     <class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class> 
     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" /> 
      <property name="hibernate.max_fetch_depth" value="3" /> 
      <property name="hibernate.hbm2ddl.auto" value="create" /> 
      <property name="hibernate.show_sql" value="true" /> 
      <property name="hibernate.connection.autocommit" value="true" /> 
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

답변

2

나는이 문제가 귀하의 persistence.xml 파일을 두는 장소와 관련이 있다고 생각합니다. 당신의 persistence.xml에서 이 파일을 당신이 공급자로 org.hibernate.ejb.HibernatePersistence을 사용할 것을 주장하는 대신 src/META-INF의 당신도

편집 src/main/resources/META-INF 또는 src/test/resources/META-INF되어 배치해야합니다. 귀하의 의견에 따르면 hibernate-entitymanager은 종속성 [source]으로 포함되지 않습니다. 해당 종속성을 추가하십시오.

희망 하시겠습니까?

+0

감사합니다! hibernate-entitymanager가 누락되었습니다. – Alex