隨筆-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   回復  更多評論
            
          主站蜘蛛池模板: 义乌市| 滨海县| 钟山县| 建宁县| 微博| 北川| 和林格尔县| 南江县| 贵定县| 兴隆县| 凤山市| 闻喜县| 克山县| 淄博市| 桦川县| 东乌| 安多县| 明溪县| 吉林市| 长丰县| 柏乡县| 彩票| 凤山市| 新丰县| 顺昌县| 米脂县| 梅州市| 灌云县| 江孜县| 兴安盟| 布拖县| 河津市| 怀宁县| 保靖县| 芒康县| 泸州市| 育儿| 闸北区| 河北省| 秦皇岛市| 柳林县|