隨筆-57  評論-202  文章-17  trackbacks-0

                Hibernate通過Lifecycle、Validatable接口制定了實體對象CRUD過程中的回調方式。
                Lifecycle接口中的onSave、onUpdate、onDelete方法,如果返回true則意味著需要中止執行相應的操作過程。如果代碼運行期間拋出了CallbackException,對應的操作也會被中止。注意,不要試圖在這些方法中調用Session進行持久化操作,這些方法中Session無法正常使用。
                Validatable.validate方法將在實體被持久化之前得到調用以對數據進行驗證。此方法在實體對象的生命周期內可能被數次調用,因此,此方法僅用于數據本身的邏輯校驗,而不要試圖在此實現業務邏輯的驗證。



                Hibernate還引入了Interceptor,為持久化事件的捕獲和處理提供了一個非侵略性的實現。Interceptor接口定義了Hibernate中的通用攔截機制。Session創建時即可指定加載相應的Interceptor,之后,此Session的持久化操作動作都將首先經由此攔截器捕獲處理。簡單的加載范例如下:

          SessionFactory factory = config.buildSessionFactory();
          Interceptor it 
          = new MyInterceptor();
          session 
          = sessionFactory.openSession(it);

                需要注意的是,與Lifecycle相同,Interceptor的方法中不可通過Session實例進行持久化操作。
          posted on 2005-07-21 18:35 小米 閱讀(3369) 評論(1)  編輯  收藏 所屬分類: Hibernate

          評論:
          # re: 《深入淺出Hibernate》讀書筆記(7)——回調與攔截機制 2007-01-09 14:49 | david[匿名]
          mark 100   回復  更多評論
            
          主站蜘蛛池模板: 随州市| 六安市| 分宜县| 江川县| 霍林郭勒市| 东阳市| 木里| 常山县| 无棣县| 洛浦县| 彩票| 苏尼特左旗| 余江县| 介休市| 敦化市| 伊金霍洛旗| 隆安县| 东明县| 临漳县| 龙里县| 团风县| 页游| 鄂温| 遂昌县| 安顺市| 清徐县| 封丘县| 麻栗坡县| 庄河市| 安塞县| 宽城| 河间市| 克山县| 开原市| 牡丹江市| 郴州市| 尉氏县| 祁门县| 青冈县| 嘉荫县| 辽源市|