2009-10-30 119 views
6

我有兩個web應用程序,它們構建在一起並分別提供對數據庫的客戶端和管理訪問權限。如何通過Spring XML配置文件配置JPA EntityListener?

我想註冊兩個JPA EntityListeners給一個給定的類,每個應用程序中有一個。爲此,我試圖通過配置每個應用程序的JPA上下文的Spring XML配置文件來找到註冊監聽器的方法......並且找不到任何方法。

有沒有人已經做過類似的事情?

下面是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> 

我認爲有註冊圍繞這些元素,尤其是JPAProperties監聽器的方式,因爲它似乎是設置JPA配置的地方元素...

JPA規範談到實體監聽器的XML元素,但我不能找到一種方法,在現有的彈簧元件注入他們...

我是相當新的春天,所以我很可能誤解了一些東西。 。 謝謝你的幫助!

+0

謝謝你,幫我用例子jpaProperties值。 – Barett 2013-01-06 07:01:07

回答

9

我猜你要尋找的是這樣的(更不用說在這個例子中,實際聽衆):

<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

這就是我一直在尋找的,謝謝! :-) – 2009-11-02 11:58:12