【hibernate merge】session1.merge(T entity)方法的含义和update方法的区别

简介: 注意:  MERGE语句是SQL语句的一种。在SQL Server、Oracle数据库中可用,MySQL、PostgreSQL中不可用。   1》session1.merge(T entity) 合并实体的方法。

注意: 

MERGE语句是SQL语句的一种。在SQL ServerOracle数据库中可用,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字段的数据是不被替换的,依旧是'李四',而其他字段被替换。

相关文章
|
10天前
|
SQL Java 数据库连接
MyBatis 和 Hibernate 有什么区别?
【8月更文挑战第21天】
11 0
|
10天前
|
Java 数据库连接 数据库
Spring Data JPA 与 Hibernate 之区别
【8月更文挑战第21天】
9 0
|
10天前
|
SQL Java 数据库连接
Hibernate 和 JPA 有什么区别?
【8月更文挑战第21天】
29 0
|
10天前
|
SQL Java 数据库连接
|
10天前
|
Java 数据库连接 数据库
|
10天前
|
缓存 Java 数据库连接
|
4月前
|
SQL 缓存 Java
框架分析(9)-Hibernate
框架分析(9)-Hibernate
|
10天前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
23 1
|
2月前
|
SQL Java 数据库连接
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
39 0