Hibernate 春季及;休眠EJB事件
是否可以定义一个spring管理的EJB3 hibernate侦听器 我在我的persistence.xml中有这个定义:Hibernate 春季及;休眠EJB事件,hibernate,spring,jpa,events,ejb,Hibernate,Spring,Jpa,Events,Ejb,是否可以定义一个spring管理的EJB3 hibernate侦听器 我在我的persistence.xml中有这个定义: <properties> <property name="hibernate.ejb.interceptor" value="my.class.HibernateAuditInterceptor" /> <property name="hibernate.ejb.event.post-update"
<properties>
<property name="hibernate.ejb.interceptor"
value="my.class.HibernateAuditInterceptor" />
<property name="hibernate.ejb.event.post-update"
value="my.class.HibernateAuditTrailEventListener" />
</properties>
但是我想用spring管理
HibernateAuditInterceptor
和HibernateAuditTrailEventListener
,这样我就可以在这些类中进行一些bean注入(例如:会话范围的bean)。这可能吗?问题是这些属性只是字符串。即使将SessionFactory定义为Springbean,通过hibernateProperties setter传递给它的任何属性都只是字符串:
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource"ref="myDataSource"/>
<property name="mappingResources">
<list>
<value>whatever.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.ejb.interceptor= my.class.HibernateAuditInterceptor
</value>
<value>
hibernate.ejb.event.post-update=my.class.HibernateAuditTrailEventListener
</value>
</property>
</bean>
whatever.hbm.xml
hibernate.ejb.interceptor=my.class.HibernateAuditInterceptor
hibernate.ejb.event.post update=my.class.HibernateAuditTrailEventListener
因此,我认为您无法做到这一点。Hibernate的SessionFactory在打开会话时接受侦听器。我相信这可以通过spring管理会话工厂和侦听器来实现;我的问题是JPA。