本篇内容主要讲解“java之Hibernate的状态是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java之Hibernate的状态是什么”吧!
1.瞬时状态
通过new开辟内存空间创建的实体对象,但是它没有纳入hibernate session的管理之中,如果没有变量对它引用,它将会被JVM(垃圾回收器)回收。瞬时状态的对象在内存中是孤立的,它与数据库无任何关联,仅仅是一个信息携带的载体。
一个瞬时状态对象被持久化状态对象引用,它也会自动变为持久化状态对象。例如调用session的save、saveorupdate等方法的时候。
特征:
(1)使用 new 创建出来的对象,没有设置 id 属性
(2)没有被 session 托管,换句话说 对象数据 存放在内存中, 没有存放到 session 缓存中
(3)临时对象数据 与 数据库中的数据 还没任何关联
2.持久化状态
持久化状态对象存在与数据库中的数据关联,它总是与会话状态(Session)和事务(Transaction)关联在一起。当持久化状态对象发生变动时并不会立即执行数据库操作,只有当事务结束时,才会更新数据库,以便保证Hibernate的持久化对象和数据库操作的同步性。
当持久化状态对象变为托管状态对象时,它将不在Hibernate持久层的管理范围之内。
特征:
(1)要么是从数据库中使用 get 或 load 方法查询到的数据对象, 要么是 使用save 或 update 方法数据转变成持久层对象
(2)对象 数据被 session 托管。换句话说 对象数据 在 session 缓存中有一份,在数据库中有相应的记录
3.脱管状态
当持久化对象的Session关闭之后,这个对象就从持久化状态变为托管状态。托管状态的对象仍然在与数据库中的数据关联,但是他并不在Hibernate的Session管辖范围之内。
如果将脱管状态的对象重新关联到某个新的Session上,它将变回持久化状态对象。
特征:
(1)主要是通过 持久状态对象,调用 session.evict() 或 session.clear() 或 session.close() 得到的,也可以new 一个设置 id 值的对象
(2)session 缓存中没有,内存中有的对象(注: 该对象设置了 id 值)
4.删除态
调用session的delete方法时,对象转为删除态。删除态只能等待被回收。
Java的基本数据类型分为:
1、整数类型,用来表示整数的数据类型。
2、浮点类型,用来表示小数的数据类型。
3、字符类型,字符类型的关键字是“char”。
4、布尔类型,是表示逻辑值的基本数据类型。
到此,相信大家对“java之Hibernate的状态是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。