您好,登錄后才能下訂單哦!
本篇內容主要講解“Hibernate攔截器是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Hibernate攔截器是什么”吧!
Hibernate還是比較常用的,于是我研究了一下Hibernate攔截器,在這里拿出來和大家分享一下,希望對大家有用。
最近項目需要,用到了Hibernate攔截器和監聽器,有些小小心得,和大家分享下。首先說說這兩個東西。
攔截器(Intercept):顧名思義,攔截操作,也就是在Hibernate做出動作之前會調用的方法。如果你有需要在Hibernate操作數據庫之前想要做的操作,就需要用到這個東西了。
監聽器(Listener):監聽,就是監視Hibernate的一舉一動,如果我們要獲取Hibernate各種操作PO的前前后后的信息,那就要用到他了。
Hibernate攔截器的實現要比監聽器簡單得多。我們只要新建一個自己的Hibernate攔截器類,繼承自org.hibernate.EmptyInterceptor類,重寫原來的方法,之后在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; 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>
到此,相信大家對“Hibernate攔截器是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。