参考地址:http://blog.csdn.net/ml5271169588/article/details/6734981
根据网上的内容总结如下:
update:
update tablename set ... where id=?
merge:
先根据id查询出记录,如果要更新的数据与查询出的数据无异,则没有update语句,
如果根据id没有查询出数据,则有insert记录,
以下的内容摘抄自网上:
当我们使用update的时候,执行完成后,我们提供的对象A的状态变成持久化状态。
但当我们使用merge的时候,执行完成,我们提供的对象A还是脱管状态,hibernate或者new了一个B,或者检索到 一个持久对象B,并把我们提供的对象A的所有的值拷贝到这个B,执行完成后B是持久状态,而我们提供的A还是托管状态。
**