Posted on 2006-09-23 14:53
黄鹏霄 阅读(130)
评论(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