溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Hibernate攔截器是什么

發(fā)布時(shí)間:2021-06-16 15:16:56 來(lái)源:億速云 閱讀:204 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“Hibernate攔截器是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Hibernate攔截器是什么”吧!

Hibernate還是比較常用的,于是我研究了一下Hibernate攔截器,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。

最近項(xiàng)目需要,用到了Hibernate攔截器和監(jiān)聽(tīng)器,有些小小心得,和大家分享下。首先說(shuō)說(shuō)這兩個(gè)東西。

攔截器(Intercept):顧名思義,攔截操作,也就是在Hibernate做出動(dòng)作之前會(huì)調(diào)用的方法。如果你有需要在Hibernate操作數(shù)據(jù)庫(kù)之前想要做的操作,就需要用到這個(gè)東西了。

監(jiān)聽(tīng)器(Listener):監(jiān)聽(tīng),就是監(jiān)視Hibernate的一舉一動(dòng),如果我們要獲取Hibernate各種操作PO的前前后后的信息,那就要用到他了。

Hibernate攔截器的實(shí)現(xiàn)要比監(jiān)聽(tīng)器簡(jiǎn)單得多。我們只要新建一個(gè)自己的Hibernate攔截器類(lèi),繼承自org.hibernate.EmptyInterceptor類(lèi),重寫(xiě)原來(lái)的方法,之后在spring中配置即可。

public class MyIntercept extends EmptyInterceptor {   @Override  public boolean onSave(Object entity, Serializable id, Object[] state,  String[] propertyNames, Type[] types) {  //entity就是當(dāng)前的實(shí)體對(duì)象  //如果當(dāng)前操作的TbUser,則做處理  if(entity instanceof TbUser){  TbUser user=(TbUser)entity;  user.setUserPassword("123");  if(user.getUserId()==null){  //返回true則攔截本次操作  return true;  }  }  return super.onSave(entity, id, state, propertyNames, types);  }  }

配置文件:

<bean id="myIntercept" class="com.app.common.util.hibernateSupport.MyIntercept"> .......  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> ...  <property name="entityInterceptor"> <ref bean="myIntercept"/> </property> ...  </bean>

到此,相信大家對(duì)“Hibernate攔截器是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI