熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Hibernate攔截器簡單描述

2013-11-23 20:13:53  來源: Java開源技術 

  Hibernate還是比較常用的於是我研究了一下Hibernate攔截器在這裡拿出來和大家分享一下希望對大家有用

  最近項目需要用到了Hibernate攔截器和監聽器有些小小心得和大家分享下首先說說這兩個東西

  攔截器(Intercept)顧名思義攔截操作也就是在Hibernate做出動作之前會調用的方法如果你有需要在Hibernate操作數據庫之前想要做的操作就需要用到這個東西了

  監聽器(Listener)監聽就是監視Hibernate的一舉一動如果我們要獲取Hibernate各種操作PO的前前後後的信息那就要用到他了

  Hibernate攔截器的實現要比監聽器簡單得多我們只要新建一個自己的Hibernate攔截器類繼承自orghibernateEmptyInterceptor類重寫原來的方法之後在spring中配置即可

  public class MyIntercept extends EmptyInterceptor {

  @Override

  public boolean onSave(Object entity Serializable id Object[] state

  String[] propertyNames Type[] types) {

  //entity就是當前的實體對象

  //如果當前操作的TbUser則做處理

  if(entity instanceof TbUser){

  TbUser user=(TbUser)entity;

  usersetUserPassword(

  if(usergetUserId()==null){

  //返回true則攔截本次操作

  return true;

  }

  }

  return superonSave(entity id state propertyNames types)

  }

  }

  配置文件

  <bean id=myIntercept

  class=monutilhibernateSupportMyIntercept>

  ……

  <bean id=sessionFactory

  class=orgspringframeworkormhibernateLocalSessionFactoryBean>

  …

  <property name=entityInterceptor>

  <ref bean=myIntercept/>

  </property>

  …

  </bean>


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28157.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.