首先,用一张图说明一个对象,在Hibernate中,在调用了不同方法之后对象所处的不同状态

Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别

在Hibernate中,一个对象的状态可以被分为如图所示的三种

Transient:瞬时对象,该对象在数据库中没有与之相对应的记录,并且该对象与Session不相关

Persistent:持久对象,该对象在数据库中有与之相对应的记录,并且该对象与Session相关

Detached:分离对象,该对象在数据库中有与之相对应的记录,并且该对象与Session不相关

三种状态中,除了持久对象之外,处于其他两种状态的对象,Session对其变化均不敏感

 

Session类中saveOrUpdate方法与merge方法,都是让Hibernate自己判断某个对象是否是新加入的数据记录,还是对数据库中已有对象进行更新,区别就在于

调用saveOrUpdate方法后,该对象会从瞬时或者分离状态变为持久状态,而调用merge之后,对象会保持分离状态。

 
0

相关文章:

  • 2021-09-01
  • 2021-08-11
  • 2022-12-23
  • 2021-11-09
  • 2021-09-30
  • 2021-08-26
猜你喜欢
  • 2022-01-10
  • 2021-10-14
  • 2022-12-23
  • 2021-07-05
  • 2022-12-23
相关资源
相似解决方案