Frage

Ich habe zwei Webapps, die zusammen gebaut sind und jeweils einen Client und Admin-Zugriff auf eine Datenbank.

Ich mag zwei JPA EntityListeners zu einer bestimmten Klasse registrieren, eine in jeder App. Um dies zu tun, ich versuche, einen Weg zu finden, die Zuhörer über die Spring-XML-Konfigurationsdatei zu registrieren, dass jede App JPA Kontext konfiguriert ... und kann einfach keinen Weg finden.

Hat jemand schon getan etwas ähnliches?

Hier ist ein Teil der XML-Konfigurationsdatei:

<bean id="tempEntityManagerFactory"
  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
  p:dataSource-ref="tempDataSource" p:persistenceUnitName="tempJpa" >

  <property name="jpaVendorAdapter">
    <bean
      class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
      p:database="ORACLE" 
      p:databasePlatform="org.hibernate.dialect.Oracle9iDialect"
      p:showSql="false"   />
  </property>

  <property name="jpaProperties">
    <props>
      <prop key="hibernate.hbm2ddl.auto">validate</prop>
    </props>
  </property>

</bean>

Ich dachte, dass es eine Möglichkeit war, einen Zuhörer um diese Elemente zu registrieren, vor allem JPAProperties, da es der Ort, an gesetzt JPA Konfigurationselemente zu sein scheint ...

Die PPV-Spezifikation spricht über entity-Hörer XML-Elemente, aber ich kann nicht einen Weg zu injizieren sie in den zur Verfügung stehenden Federelemente ...

finden

Ich bin ziemlich neu in Spring, so kann ich auch etwas falsch verstanden habe ... Vielen Dank für Ihre Hilfe!

War es hilfreich?

Lösung

Ich denke, was Sie suchen so etwas wie diese (nie die eigentlichen Zuhörer in diesem Beispiel etwas dagegen):

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

    <!-- other configuration cut out -->

    <property name="jpaProperties">
        <props> 

            <!-- for hibernate envers -->
            <prop key="hibernate.ejb.event.post-insert">
                org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener
            </prop>
            <prop key="hibernate.ejb.event.post-update">
                org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener
            </prop>
            <prop key="hibernate.ejb.event.post-delete">
                org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener
            </prop>
            <prop key="hibernate.ejb.event.pre-collection-update">org.hibernate.envers.event.AuditEventListener
            </prop>
            <prop key="hibernate.ejb.event.pre-collection-remove">org.hibernate.envers.event.AuditEventListener
            </prop>
            <prop key="hibernate.ejb.event.post-collection-recreate">org.hibernate.envers.event.AuditEventListener
            </prop>
        </props>
    </property>
</bean>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top