Hibernate 春季及;休眠EJB事件

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"

是否可以定义一个spring管理的EJB3 hibernate侦听器

我在我的persistence.xml中有这个定义:

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