Top / Hibernate / Springを使ってInterceptorを設定する

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


この記事は

選択肢 投票
おもしろかった 7  
そうでもない 3  

Top / Hibernate / Springを使ってInterceptorを設定する

現在のアクセス:10539


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-05-02 (金) 09:45:35 (2023d)