2009-10-30 6 views
6

Ich habe zwei Webapps, die zusammen gebaut sind und jeweils einen Client- und Admin-Zugang zu einer Datenbank bieten.Wie kann ich einen JPA EntityListener über eine Spring XML-Konfigurationsdatei konfigurieren?

Ich möchte zwei JPA EntityListeners zu einer bestimmten Klasse, eine in jeder App registrieren. Dazu suche ich nach einer Möglichkeit, die Listener über die Spring-XML-Konfigurationsdatei zu registrieren, die den JPA-Kontext der jeweiligen Anwendung konfiguriert und einfach keinen Weg findet.

Hat jemand schon etwas ähnliches getan?

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 ein Weg, es gab einen Zuhörer um diese Elemente zu registrieren, vor allem JPAProperties, da es der Ort, an gesetzt JPA Konfiguration zu sein scheint Elemente ...

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 ...

ich bin ziemlich neu in Frühling finden, also könnte ich etwas falsch verstanden haben .. . Danke für Ihre Hilfe!

+0

Danke, das hat mir geholfen, mit Beispiel jpaProperties Werte. – Barett

Antwort

9

Ich denke, was Sie suchen ist so etwas wie dieses (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> 
+0

Das habe ich gesucht, danke! :-) –