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 閱讀(360) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄數據庫

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 渝中区| 长宁区| 肃北| 阜平县| 吉木乃县| 安龙县| 石楼县| 花垣县| 仁怀市| 汪清县| 寿宁县| 紫金县| 东安县| 云龙县| 阳东县| 汕尾市| 阳朔县| 大埔县| 兴国县| 喀喇沁旗| 邢台县| 思茅市| 商河县| 满城县| 潼关县| 平舆县| 隆化县| 巴塘县| 白城市| 富顺县| 铁岭县| 南乐县| 合作市| 苍南县| 南岸区| 石渠县| 图木舒克市| 连城县| 天门市| 郴州市| 靖西县|