加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 自动连接到休眠拦截器

发布时间:2020-12-15 04:17:02 所属栏目:Java 来源:网络整理
导读:我正在扩展hibernate.EmptyInterceptor,在我的实现中,我希望自动连接到某些服务,但它们返回null.我在类上添加了一个@Component注释.我的代码: property name="jpaPropertyMap" map entry key="javax.persistence.transactionType" value="JTA" / entry key=
我正在扩展hibernate.EmptyInterceptor,在我的实现中,我希望自动连接到某些服务,但它们返回null.我在类上添加了一个@Component注释.我的代码:

<property name="jpaPropertyMap">
    <map>
        <entry key="javax.persistence.transactionType" value="JTA" />
        <entry key="hibernate.current_session_context_class" value="jta" />
        <entry key="hibernate.transaction.manager_lookup_class"
            value="com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup" />
        <entry key="hibernate.connection.autocommit" value="false" />
        <entry key="hibernate.ejb.interceptor" value="com.net.filter.AuditInterceptor"/>
    </map>
</property>

和班级:

@SuppressWarnings("serial")
@Component
public class AuditInterceptor extends EmptyInterceptor {

    @Autowired
    private IUserSessionService userSessionService;

解决方法

我知道这可能要来两年太晚了 – 但我正在寻找同样问题的答案,并认为这对未来的某些人有用.

查看Hibernate代码看起来如果给出类名,Hibernate将实例化拦截器的新实例,但如果传入bean实例引用,它将使用它.

所以

<bean id="myInterceptor" class="com.net.filter.AuditInterceptor" />

<property name="jpaPropertyMap">
    <map>
        <entry key="javax.persistence.transactionType" value="JTA" />
        <entry key="hibernate.current_session_context_class" value="jta" />
        <entry key="hibernate.transaction.manager_lookup_class"
            value="com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup" />
        <entry key="hibernate.connection.autocommit" value="false" />
        <entry key="hibernate.ejb.interceptor" >
            <ref bean="myInterceptor" />
        </entry>
    </map>
</property>

现在bean myInterceptor是Spring管理的,自动装配将工作!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读