我想使用原型拦截器而不是单例拦截器,这样每个会话都会得到一个新的拦截器实例。
我查看了 HibernateTransactionManager 类,我认为“EntityInterceptorObjectName”和“ObjectFactory”是我必须设置的属性。
虽然 EntityInterceptorObjectName 非常明显,但当它是“ObjectFactories 之母”时,我不知道如何引用 ObjectFactory,例如创建 AppContext/HibernateTransactionManager 的同一个 ObjectFactory。
配置的相关部分:
<object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate20">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="SessionFactory"/>
<!-- the name of my non-Singleton EntityInterceptor-->
<property name="EntityInterceptorObjectName" value="MyPrototypeEntityInterceptor" />
<!-- What should I put as ref here? -->
<property name="ObjectFactory" ref="" />
</object>
<object id="MyPrototypeEntityInterceptor" type="Hib.EntityInterceptor, Hib.Interceptors" singleton="false">
</object>