做更新時是先查出數據 再更新    你上面的程序 3個動作
memberService.updateMemberInfo(accountVo.getMemberVO());//A  
accountDAO.updateAccount(account,owner,card);//B  
serviceAccountHistory.mustSaveAcHy(accountHistoryVo);//C  等A、B、C都執行查詢完畢后  再做A的更新 B的更新 C的更新  
 如果是這樣就有點怪勒
我認為應該是 A查詢 A更新 B查詢 B更新 C查詢 C更新
 這樣吧
    你先寫一個更新語句看下結果 加油!

解决方案 »

  1.   

    想让hibernate立即更新, 得调用session.flush()
      

  2.   

       今天繼續追蹤了這個問題。(查資料)    在o/r mapping文件中 .hbm.xml文件中 有一個屬性select-befor-update(hibernate2 與 hebernate3 之間的差別我就不大清楚 就算不同 名字也應該差不多) 默認值是false 看是不是別人幫你改成true了
       指示 hibernate 在更新時 它會去先執行查詢 看數據是否有改動 來決定是否需要執行更新 但是現在還沒明白為什么會像你說的那樣  先執行3條查詢 再一起執行更新。
     希望懂的人教我下  我愛學 呵呵。
      
        
      

  3.   

    把3个更新放到一个Transaction中去,我觉得这是一个事务单元。