您好,登錄后才能下訂單哦!
本篇內(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í)!
免責(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)容。