用户登录
用户注册

分享至

hibernate三种状态作用

  • 作者: 他后妈的妈
  • 来源: 51数据库
  • 2020-10-26

对于hibernate,它的对象有三种状态,transient、persistent、detached



  1.transient:瞬态或者自由态

  (new DeptPo(1,地行政部地,20,地行政相关地),该po的实例和session没有关联,该po的实例处于transient)

  2.persistent:持久化状态

  (和数据库中记录想影射的Po实例,它的状态是persistent, 通过get和load等得到的对象都是persistent)

  3.detached:脱管状态或者游离态

  (1)当通过get 或load方法得到的po对象它们都处于persistent,但如果执行delete(po)时(但不能执行事务),该po状态就处于 detached, (表示和session脱离关联),因delete而变成游离态可以通过save或saveOrUpdate()变成持久态

  (2)当把session关闭时,session缓存中的persistent的po对象也变成detached

  因关闭session而变成游离态的可以通过lock、save、update变成持久态

  持久态实例可以通过调用 delete()变成脱管状态。

  通过get()或load()方法得到的实例都是持久化状态的。

  脱管状态的实例可以通过调用lock()或者replicate()进行持久化。


  save()和persist()将会引发SQL的INSERT,delete()会引发SQLDELETE,

  而update()或merge()会引发SQL UPDATE。对持久化(persistent)实例的修改在刷新提交的时候会被检测到,它也会引起SQL UPDATE。

  saveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE


软件
前端设计
程序设计
Java相关