hibernate中实体类对象的四种状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate中实体类对象的四种状态相关的知识,希望对你有一定的参考价值。

技术分享图片

1、临时状态(transient):
用new语句创建,还没有被持久化,并且不在Session的缓存中。
标识:OID为null,没有和Session建立关系。
2、持久化状态(persistent):
已经计划被持久化,并且加入到Session的缓存中。(为什么说计划:因为事务问题,是否已经提交事务)
标识:OID不为null,建立了和Session的关系。
3、删除状态(removed):(可以不管,如果说三种状态,就是没有此种)
不在Session的缓存中,且Session已经计划将其从数据库中删除。
标识:OID不为null,计划要从Session中删除的。
4、脱管状态(detached):
已经被持久化,不在Session的缓存中
标识:OID不为null,没有和Session建立关系。

以上是关于hibernate中实体类对象的四种状态的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis中实体类属性和数据列之间映射的四种办法

实体类的状态与Hibernate缓存

Hibernate映射文件

Hibernate面试题

Java实战之02Hibernate-02映射一级缓存实体对象状态

JAVAEE学习笔记hibernate02:实体规则对象状态缓存事务批量查询和实现客户列表显示