2009-10-30 37 views
6

Tôi có hai ứng dụng web, được xây dựng cùng nhau và tương ứng cung cấp cho khách hàng và quyền truy cập quản trị vào cơ sở dữ liệu.Làm cách nào để cấu hình JPA EntityListener qua tệp cấu hình Spring XML?

Tôi muốn đăng ký hai JPA EntityListeners cho một lớp nhất định, một trong mỗi ứng dụng. Để làm điều đó, tôi đang cố gắng tìm cách đăng ký người nghe thông qua tệp cấu hình Spring XML để định cấu hình ngữ cảnh JPA của từng ứng dụng ... và không thể tìm thấy bất kỳ cách nào.

Có ai đã làm điều gì đó tương tự không?

Đây là một phần của tập tin cấu hình 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> 

Tôi nghĩ rằng có một cách để đăng ký một người biết lắng nghe xung quanh những yếu tố, đặc biệt là JPAProperties, vì nó có vẻ là nơi để thiết lập cấu hình JPA yếu tố ...

các JPA đặc tả nói về các yếu tố thực thể nghe XML, nhưng tôi không thể tìm thấy một cách để tiêm cho họ trong các yếu tố mùa xuân có sẵn ...

tôi khá mới để mùa xuân, vì vậy tôi có thể đã hiểu nhầm điều gì đó .. . Cảm ơn bạn đã giúp đỡ!

+0

Thanks, điều này giúp tôi với giá trị mẫu jpaProperties. – Barett

Trả lời

9

Tôi đoán những gì bạn đang tìm kiếm là một cái gì đó như thế này (không bao giờ quan tâm người nghe thực tế trong ví dụ này):

<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

Đó là những gì tôi đang tìm kiếm, cảm ơn! :-) –

Các vấn đề liên quan