2009-10-30 9 views
6

Ho due webapp, che sono costruite insieme e forniscono rispettivamente un accesso client e admin a un database.Come posso configurare un EntityListener JPA tramite un file di configurazione Spring XML?

Vorrei registrare due EntityListeners JPA in una determinata classe, una in ogni app. Per fare ciò, sto cercando di trovare un modo per registrare gli ascoltatori tramite il file di configurazione Spring XML che configura il contesto JPA di ogni app ... e proprio non riesce a trovare alcun modo.

Qualcuno ha già fatto qualcosa di simile?

Ecco una parte del file di configurazione XML:

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

ho pensato che ci fosse un modo per registrare un listener intorno a questi elementi, in particolare JPAProperties, dal momento che sembra essere il posto giusto per impostare la configurazione JPA elementi ...

le specifiche JPA parla di elementi di entità-ascoltatori XML, ma non riesco a trovare un modo per iniettare loro gli elementi a molla disponibili ...

sono abbastanza nuovo per Primavera, quindi potrei aver frainteso qualcosa .. . Grazie per l'aiuto!

+0

Grazie, questo mi ha aiutato con valori di esempio jpaProperties. – Barett

risposta

9

Credo che quello che stai cercando è qualcosa di simile (per non parlare degli ascoltatori reali in questo esempio):

<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

Questo è quello che stavo cercando, grazie! :-) –

Problemi correlati