当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

Hibernate构架操纵中常用保存办法辨别[Java编程]

赞助商链接



  本文“Hibernate构架操纵中常用保存办法辨别[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

hibernate关于对象的保存供应了太多的办法,他们之间有很多差别,这里细说一下,以便辨别:

1、预备知识:

在全部之前,阐明一下,关于hibernate,它的对象有三种状况,transient、persistent、detached

下边是常见的翻译办法:

transient:瞬态大概安闲态

persistent:长期化状况

detached:脱管状况大概游离态

脱管状况的实例可以通过调用save()、persist()大概saveOrUpdate()办法举行长期化.

长期化实例可以通过调用 delete()变成脱管状况.通过get()或load()办法得到的实例都是长期化状况的.

脱管状况的实例可以通过调用 update()、0saveOrUpdate()、lock()大概replicate()举行长期化.

save()和persist()将会引发SQL的INSERT,delete()会引发SQLDELETE,而update()或merge()会引发SQLUPDATE.对长期化(persistent)实例的改正在革新提交的时刻会被检测到,它也会惹起SQLUPDATE.saveOrUpdate()大概replicate()会引发SQLINSERT大概UPDATE

2、save 和update辨别

把这一对放在第一位的缘由是因为这一对是最常用的.

save的作用是把一个新的对象保存

update是把一个脱管状况的对象保存

3、update 和saveOrUpdate辨别

这个是对比好理解的,顾名思义,saveOrUpdate基本上就是合成了save和update引用hibernate reference中的一段话来注释他们的利用场所和辨别.

普通下面的场景会利用update()或saveOrUpdate():

程序在第一个session中加载对象

该对象被传送到表现层

对象发生了一些窜改

该对象被返回到业务逻辑层

程序调用第二个session的update()办法长期这些窜改

saveOrUpdate()做下面的事:

假如对象已经在本session中长期化了,不做任何事

假如另一个与本session关联的对象拥有相同的长期化标识(identifier),抛出一个非常

假如对象没有长期化标识(identifier)属性,对其调用save()

假如对象的长期标识(identifier)表明其是一个新实例化的对象,对其调用save()

假如对象是附带版本信息的(通过或) 并且版本属性的值表明其是一个新实例化的对象,save()它.


  以上是“Hibernate构架操纵中常用保存办法辨别[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 在Hibernate里面动态切换SChema实现访谒差别的数据库的几种办法
  • Hibernate 3新增XML关系长期性介绍
  • Hibernate配置文件在单元测试中的操纵
  • 在Hibernate中动态切换Schema
  • hibernate annoation (八 关联映射)
  • hibernate annoation (九 cascading)
  • <b>hibernate annoation (十 映射查询)</b>
  • hibernate annoation(十一 缓存Ehcache 采纳annoation)
  • Hibernate:操作配置文件生成数据库
  • hibernate annoation (一 加载)
  • hibernate annoation (二 成立表)
  • <b>hibernate annoation (三 id生成器)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .