注意:
MERGE语句是SQL语句的一种。在SQL Server、Oracle数据库中可用,MySQL、PostgreSQL中不可用。
1》session1.merge(T entity) 合并实体的方法。
2》merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理:
当ID在数据库中不能找到时,用update的话肯定会报异常,然而用merge的话,就会insert。
当ID在数据库中能找到的时候,update与merge的执行效果都是更新数据,发出update语句;
如果没有设置ID的话,则这个对象就当作瞬态处理:
用update的话,由于没有ID,所以会报异常,merge此时则会保存数据,根据ID生产策略生成一条数据;
3》作用类似与saveOrUpdate()方法,作用基本一致,不过略有区别。
4》与saveOrUpdate()方法的区别是:
1.saveOrUpdate()是完全更新数据
2.merge()方法在更新数据的时候,例如数据库中本条数据的name这个字段是‘李四’,而新的要合并的数据中name字段是null,那数据库中name字段的数据是不被替换的,依旧是'李四',而其他字段被替换。