1、session.merge(obj)会先执行select语句 查询该标识的对象是否被修改 若有修改记录 则update 若没有则什么都不做;
2、session.merge(obj)方法可以解决在一个session里有不同的两个对象但有相同标识的问题:
merge在执行更新之前会将两个标识符相同的对象进行合并,具体合并的方向是向最后一次修改合并
3、merge方法在执行之前都回去缓存中找是不是有相应的记录,也就是会有一条select语句,执行该语句的目的是为了判断该对象是否被修改了。而update就不管这些,直接就一条update语句。