Posted on 2006-09-23 14:53
黃鵬霄 閱讀(138)
評論(0) 編輯 收藏 所屬分類:
MVC
1 增刪改放在事務里
2 關于merge
有意思現象1:
?Htest ht=new Htest();
???ht.setHid(new Integer(7));
???ht.setHname("xxxxxxxxxxxxxx");
???session.merge(ht);
???Htest h=(Htest)session.load(Htest.class, new Integer(7));
???System.out.println(h.getHname());
???trx.commit();
??
loging:
Hibernate: select htest0_.hid as hid0_0_, htest0_.hname as hname0_0_ from hpx.dbo.htest htest0_ where htest0_.hid=?
xxxxxxxxxxxxxx
Hibernate: update hpx.dbo.htest set hname=? where hid=?
思考:
此對象在COMMIT時才UPDATE 那么MERGE作了什么 SELECT從哪查的呢?
問題:
既然select了數據 為什么h的name已經改變了 而且update是在更晚的時間執行的?
現象2:
merge換成update
logging:
yy
Hibernate: update hpx.dbo.htest set hname=? where hid=?
只生成update語句
why why why??
3