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管理的,自动装配将工作! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |