qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Hibernate與數據庫的觸發器協同工作

          Hibernate 與數據庫中的觸發器協同工作時, 會造成兩類問題
            1、觸發器使 Session 的緩存中的持久化對象與數據庫中對應的數據不一致:觸發器運行在數據庫中, 它執行的操作對 Session 是透明的 Session 的
            解決方案: 在執行完 Session 的相關操作后, 立即調用 Session 的 flush() 和 refresh() 方法, 迫使 Session 的緩存與數據庫同步(refresh() 方法重新從數據庫中加載對象)
            2、update() 方法盲目地激發觸發器: 無論游離對象的屬性是否發生變化, 都會執行 update 語句, 而 update 語句會激發數據庫中相應的觸發器
            解決方案:在映射文件的的 <class> 元素中設置 select-before-update 屬性: 當 Session 的 update 或 saveOrUpdate() 方法更新一個游離對象時, 會先執行 Select 語句, 獲得當前游離對象在數據庫中的最新數據, 只有在不一致的情況下才會執行 update 語句(沒有用到觸發器的時候一般的情況下最好不要設置,因為會降低效率的)

          posted on 2014-10-30 11:57 順其自然EVO 閱讀(358) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄數據庫

          <2014年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 吐鲁番市| 昔阳县| 务川| 海伦市| 长春市| 焉耆| 青阳县| 资阳市| 贺兰县| 德阳市| 东乌| 固原市| 巴东县| 平阴县| 泉州市| 保定市| 高碑店市| 五家渠市| 平江县| 湘乡市| 古交市| 南川市| 泰顺县| 格尔木市| 平江县| 工布江达县| 甘洛县| 定远县| 云龙县| 东海县| 景洪市| 临漳县| 阜阳市| 樟树市| 宣汉县| 扶风县| 梁河县| 玉林市| 简阳市| 灵宝市| 聊城市|