Spring XML構成ファイルを介してJPA EntityListenerを構成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1649052

質問

2つのwebappsがあり、それらは一緒に構築され、それぞれデータベースへのクライアントと管理者のアクセスを提供します。

2つのJPA EntityListenerを特定のクラスに登録します(各アプリに1つずつ)。そのために、各アプリの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要素にそれらを挿入する方法を見つけることができません...

私は春にかなり慣れていないので、何かを誤解しているかもしれません...ご協力ありがとうございます!

役に立ちましたか?

解決

探しているのは次のようなものだと思います(この例の実際のリスナーは気にしないでください):

<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帰属
所属していません StackOverflow
scroll top