/ / Jak udostępnić plik Persistence.xml między modułem ejb a modułem sieci w pliku EAR? - hibernacja, wiosna, jpa, maven

Jak udostępnić plik Persistence.xml między modułem ejb a modułem sieci w pliku EAR? - hibernacja, wiosna, jpa, maven

Mamy jedną aplikację EAR z jednym modułem ejbktóry zawiera wszystkie ziarna enity i kilka ziaren sesji i pojęć. Ma jeden plik persistence.xml. Teraz jest inny moduł sieciowy, który jest wiosenną aplikacją mvc i wykorzystuje elementy bean encji w modułach ejb. Teraz, aby używać jpa, muszę również utworzyć jeden moduł persistence.xml w module webowym. Ale jest duplikowany, jak już mamy w module ejb. Czy jest jakiś sposób, że mogę zachować tylko jeden plik persistence.xml w uchu i będzie on używany zarówno w module ejb, jak i webowym. Czy ktoś może dać mi prostą strukturę projektu jako przykład. Tylko dla wiedzy używamy maven.

Dzięki

Odpowiedzi:

3 dla odpowiedzi № 1


Możesz umieścić swój persistence.xml wraz z klasami encji w oddzielnym słoiku, który umieścisz w folderze / lib twojego EAR.

yourEar.ear
|
|_ yourEjb.jar
|
|_ yourWeb.war
|
|_ lib
|
|_ yourPersistence.jar
|
|_ META-INF/persistence.xml
|
|_ yourEntity.class

0 dla odpowiedzi nr 2

Oto przykład mojego pliku persistence.xml i applicationContext.xml http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd " version = "1.0">

<persistence-unit name="acme" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/acmeDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="none" />
<property name="hibernate.show_sql" value="true" />
<property name="jboss.entity.manager.factory.jndi.name" value="persistence-units/acmeManager"/>
<property name="jboss.entity.manager.jndi.name" value="persistence-units/acme"/>
</properties>
</persistence-unit>

I Spring context.xml

<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence-units/acme" />
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />


0 dla odpowiedzi № 3

Miałem trudności z zaimplementowaniem tego z Mavenem. Jeśli będziesz używał Mavena do spakowania twojego projektu, poniższe ustawienie spowoduje uzależnienie modułów współdzielonych między ejb i WWW (cokolwiek w zależnościach robacza urza zdefiniowane jako <type>jar</type>) w katalogu / lib pliku ear:

<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<defaultLibBundleDir>lib/</defaultLibBundleDir>
…
</plugin>