Hibernateにはorg.hibernate.InterceptorというCallBack?のためのインタフェースがありますが、このインタフェース(の実装クラス)はSessionに対してセットすることになっています。 さて、Springを使ってるとSessionとかでてこねーよなーどこでセットするのかなあとSpringのJavaDocをあさっていたところorg.springframework.orm.hibernate3.LocalSessionFactoryBeanに、 public void setEntityInterceptor(Interceptor entityInterceptor) というメソッドがありました。これを使えば良さそうです。またこのクラスはSpring&Hibernateでよく出てくる sessionFactoryのクラスなので、たとえば </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>nu/mine/kino/entity/webdb1/Item.hbm.xml</value> <value>nu/mine/kino/entity/webdb1/Bid.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop> </props> </property> <property name="entityInterceptor"> <-これ <ref bean="entityInterceptor" /> </property> </bean> というようにInjectionすればOKです。あとはこのInterceptorインタフェースの実装クラスを作ればOK!. この記事は 現在のアクセス:12262 |