Hibernate Session操纵的对象状态转换图
来源:互联网 发布:河北科技大学 知乎 编辑:程序博客网 时间:2024/05/15 16:59
Session 的 save() 方法
Session 的 save() 方法使一个临时对象转变为持久化对象
Session 的 save() 方法完成以下操作:
把 News 对象加入到 Session 缓存中, 使它进入持久化状态
选用映射文件指定的标识符生成器, 为持久化对象分配唯一的 OID. 在 使用代理主键的情况下, setId() 方法为 News 对象设置 OID 使无效的.
计划执行一条 insert 语句:在 flush 缓存的时候
Hibernate 通过持久化对象的 OID 来维持它和数据库相关记录的对应关系. 当 News 对象处于持久化状态时, 不允许程序随意修改它的 ID
persist() 和 save() 区别:
当对一个 OID 不为 Null 的对象执行 save() 方法时, 会把该对象以一个新的 oid 保存到数据库中; 但执行 persist() 方法时会抛出一个异常.
Session 的 get() 和 load() 方法
都可以根据跟定的 OID 从数据库中加载一个持久化对象
区别:
当数据库中不存在与 OID 对应的记录时, load() 方法抛出 ObjectNotFoundException 异常, 而 get() 方法返回 null
两者采用不同的延迟检索策略:load 方法支持延迟加载策略。而 get 不支持。
Session 的 update() 方法
Session 的 update() 方法使一个游离对象转变为持久化对象, 并且计划执行一条 update 语句.
若希望 Session 仅当修改了 News 对象的属性时, 才执行 update() 语句, 可以把映射文件中 <class> 元素的 select-before-update 设为 true. 该属性的默认值为 false
当 update() 方法关联一个游离对象时, 如果在 Session 的缓存中已经存在相同 OID 的持久化对象, 会抛出异常
当 update() 方法关联一个游离对象时, 如果在数据库中不存在相应的记录, 也会抛出异常.
Session 的 saveOrUpdate() 方法
判定对象为临时对象的标准
Java 对象的 OID 为 null
映射文件中为 <id> 设置了 unsaved-value 属性, 并且 Java 对象的 OID 取值与这个 unsaved-value 属性值匹配
Session 的 merge() 方法
Session 的 delete() 方法
Session 的 delete() 方法既可以删除一个游离对象, 也可以删除一个持久化对象
Session 的 delete() 方法处理过程
计划执行一条 delete 语句
把对象从 Session 缓存中删除, 该对象进入删除状态.
- Hibernate Session操纵的对象状态转换图
- Hibernate 操纵对象 Session用法
- Hibernate学习(六):session.delete以及对象状态转换图
- Hibernate学习(六):session.delete以及对象状态转换图
- hibernate对象状态转换图
- 【学习笔记】Hibernate中对象的状态和转换以及Session的主要方法总结
- Hibernate Session篇--Hibernate的缓存及对象的状态
- Hibernate Session篇--Hibernate的缓存及对象的状态
- hibernate对象的三种状态,转换图:
- hibernate对象的三种状态,转换图:
- hibernate对象状态的转换,延迟检索
- Hibernate框架基础——操纵持久化对象的方法(Session中)
- hibernate中对象状态转换图
- Hibernate(三)---通过Session操纵持久化对象
- Hibernate学习(三):Session的缓存及对象的状态
- Hibernate中Session的缓存及对象的状态
- Hibernate学习(三):Session的缓存及对象的状态
- Hibernate对象的状态,session的clear()和evict()
- 安全驾驶-后视镜(五十六)
- spring中bean的配置项(4)
- mybatis多对多处理
- spring中aware接口(5)
- 安全驾驶-摩托车 (五十七)
- Hibernate Session操纵的对象状态转换图
- Service和IntentService的区别1
- Scala编程中常见错误:Error:(24, 29) value foreach is not a member of java.util.Set[String]
- spring中bean的自动装配(6)
- CreateJS-EaseJS 应用
- spring中bean的Resources(7)
- [javaScript]改变鼠标经过表格行背景色
- Spring+Mybatis+MySql双数据源配置(手动切换数据源)
- 修改tomcat项目的图标