我怎样才能通过Spring XML配置文件配置JPA EntityListener?
题
我有两个web应用,即内置在一起,并分别提供到数据库的客户端和管理员存取权。
我想2个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元素,但我不能找到一种方法,在现有的弹簧元件注入他们...
我是相当新的春天,所以我可能误解了什么......感谢您的帮助!
解决方案
我想你要找的东西是这样的(更不用说在这个例子中,实际听众):
<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>
不隶属于 StackOverflow