2016-07-18 2 views
0

Ich habe ein Problem beim Konfigurieren der mehreren Entity Manager mit mehreren persistence.xml über xml configuration, kann jemand bitte helfen Sie mir mit der Konfiguration. Ausgabe:Problem beim Bereitstellen mehrerer peristence.xml in Tomee mit JBPM, Frühling, JPA (Hibernate)

SCHWEREN [main] org.apache.openejb.config.ReportValidationResults.logResults FAIL ... Kern-web-1.0_A0: @PersistenceContext unitname erforderlich, mehrere Einheiten zur Verfügung: ref "em", erhältlich Einheiten [applicationPersistenceUnit, applicationPersistenceUnit, applicationPersistenceUnit, applicationPersistenceUnit]

Below is configuration: 

    <bean id="appEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:jpadialect-ref="jpaDialect" p:jpavendoradapter-ref="jpaVendorAdapter"> 
<property name="jpaProperties"/> 
<property name="packagesToScan"> 
<list> 
<value>${application.model.packagesToScan}</value> 
<value>org.kie.*</value> 
<value>org.jbpm.*</value> 
</list> 
</property> 
<property name="dataSource" ref="appDataSource"/> 
<property name="persistenceUnitManager" ref="persistenceUnitManager"/> 
</bean> 

<bean id="persistenceUnitManager" class="org.springframework.data.jpa.support.MergingPersistenceUnitManager"> 
<property name="persistenceXmlLocations"> 
<list> 
<value>classpath*:META-INF/persistence.xml</value> 
<value>classpath*:META-INF/workflow-persistence.xml</value> 
</list> 
</property> 
<property name="defaultDataSource" ref="appDataSource"/> 
</bean> 

Reason multiple aufweist wobei persistence.xmls ist JBPM separaten Satz von Klassen erwartet.

Antwort

0

Es scheint, dass Sie mehrere Persistenzeinheiten haben, aber jpa weiß nicht, wie man den Entity Manager behandelt. In welcher Persistenzeinheit sollte es hingehören?

try sth wie diese (Änderung Ihrer lokalen Bedürfnissen entsprechend)

@PersistenceContext(unitName = "UNIT1", type = PersistenceContextType.TRANSACTION) 
    private EntityManager unit1EntityManager; 

    @PersistenceContext(unitName = "UNIT2", type = PersistenceContextType.TRANSACTION) 
    private EntityManager unit2EntityManager; 

    @PersistenceContext(unitName = "UNIT3", type = PersistenceContextType.TRANSACTION) 
    private EntityManager unit3EntityManager; 
0

Wenn Sie einige Gläser haben, die nicht EE (100% Frühling, Standalone-Systeme oder andere) sind Sie sie von der Scan Schaffung eines ausschließen WEB-INF/exclusions.list und das Hinzufügen von innen:

default-list 
myjarprefix 

, ob das Glas myjarprefix-1.2.3.jar zum Beispiel gestattet.

Es verhindert, dass der EE @ PersistenceContext/@ PersistenceUnit ohne einen Namen gescannt wird und lässt daher den Container starten.

Wenn die Klassen mit EE Code gemischt werden, können Sie eine WEB-INF/scan.xml mit hinzuzufügen:

<scan> 
    <packages> 
     <package>com.company.application.myeepackage</package> 
    </packages> 
</scan> 

darauf achten, dass nicht ein Paket mit den Klassen möchten Sie Liste ausschließen

Verwandte Themen