簡體   English   中英

如何通過Spring XML配置文件配置JPA EntityListener?

[英]How can I configure a JPA EntityListener via a Spring XML configuration file?

我有兩個webapps,它們一起構建並分別提供對數據庫的客戶端和管理員訪問。

我想將兩個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元素,但是我找不到在可用的Spring元素中注入它們的方法......

我對Spring很新,所以我可能誤解了一些事情......感謝您的幫助!

我想你正在尋找的是這樣的東西(更不用說這個例子中的實際聽眾):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM