1

是否可以定义一个弹簧管理的 EJB3 休眠监听器?

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

<properties> 
    <property name="hibernate.ejb.interceptor"
        value="my.class.HibernateAuditInterceptor" /> 
    <property name="hibernate.ejb.event.post-update"
        value="my.class.HibernateAuditTrailEventListener" /> 
</properties>

但我想管理HibernateAuditInterceptorHibernateAuditTrailEventListener使用 spring,所以我可以在这些类中做一些 bean 注入(例如:会话范围的 bean)。这可能吗?

4

2 回答 2

3

http://blog.krecan.net/2009/01/24/spring-managed-hibernate-interceptor-in-jpa/

于 2010-06-17T16:48:17.630 回答
0

问题是这些属性只是字符串。即使您将 SessionFactory 定义为 Spring bean,您通过 hibernateProperties 设置器传递给它的任何属性也只是字符串:

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

所以我认为你不能这样做。

于 2008-11-04T19:05:00.223 回答