hibernate三种状态:临时状态、游离状态、持久化状态

三种状态的判断标准:

con1:是否得到了与数据库现存记录相对应的oid
con2:是否存在于Session缓存中

数据库


三种状态的定义:

if(!con1 && !con2){ transient 临时状态 } 缓存

相似:没有编号的公司临时工session

说明:临时状态表示在数据库中没有对应id的记录,同时在session缓存中也不存对应ID的对象spa

注意:临时对象能够存在id对象


if(con1 && con2){ persistent 持久化 } 
blog

相似:是有编号的公司正式员工io

说明:持久化对象表示在数据库中有对应id的记录,同时在session缓存中也存在对应ID的对象;im


if(con1 && !con2) { detached 游离状态 } 
数据

相似:休假中的公司正式员工(与公司失去联系)
img

说明:游离状态表示在数据库中有对应ID的记录,但在session缓存中不存在对应ID的对象;

注意:游离状态必定有ID