托管状态与游离状态
来源:互联网 发布:剑网三叶英捏脸数据 编辑:程序博客网 时间:2024/04/29 19:57
瞬时状态:是指对象被new之后尚未保存到数据库,一旦服务器停止,JVM会回收它所占的内存资源,此时对象没有与session关联.
托管状态:在数据库中已有数据与之对应,且与session相关联。实体状态转换到托管状态的方法:
A.调用persist(),实体从游离转变到托管,最后变成持久化状态.
B.调用find()或Query执行查询,实体从持久变成托管.
C.调用refresh(),游离实体将被重新加载,变成托管状态.
D.调用merge(),将游离实体变成托管实体.
游离状态:数据库中有数据与之对应但不在session的管理范围,它的属性不与数据库中持久化的实体同步.
实体从托管变成游离的情况有:
A.当一个事务结束,实体超过持久化上下文作用域,实体变成游离态
B.当复制实体对象或序列化时,实体将变成游离态
C.调用clear方法时,所有的实体将强制转化为游离态
载一个Bean,并调用这个 Bean的set方法以后(product.setDescription(xxx);),在JPA中假如有OpenInView的设置,那么系统就会同步的将修改过的值同步保存到数据库中去,假如不想让修改过的值同步保存
到数据库中去,就必须将托管状态的Bean转化为游离状态的Bean(可以用em.clear()让托管状态的实体转换为游离状态),来清除一
级缓存的数据,这样就可以避免更新数据库中的数据。
当然还有第二种解决方案:就是也可以通
过再Bean里再添加一个属性的方法来实现,这个属性没有实际意义,只是为了前
台显示调用。
- 托管状态与游离状态
- bean的托管状态和游离状态
- 什么是游离状态
- Git ---游离状态下的commit 分支切换与找回
- git 游离状态的解决办法
- Hibernate中有三种状态 临时状态 持久状态 游离状态
- hibernate深度学习 游离状态 HQL
- 托管线程状态
- 在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。
- Hibernate对象三种状态:临时状态、持久状态和游离状态
- Hibernate对象三种状态:临时状态、持久状态和游离状态
- hibernate 对象的状态(临时状态,持久化状态,游离状态)
- hibernate实体对象的三种状态:自由状态,持久状态,游离状态.
- Hibernate 对象的三种状态 持久状态 临时状态 游离状态
- hibernate实体对象的三种状态:自由状态,持久状态,游离状态.
- hibernate三种状态:临时状态、游离状态、持久化状态
- Hibernate进阶:理解Hibernate中的四种状态(临时状态,持久状态,游离状态,删除状态)
- hibernate对象三种状态 持久 游离和 瞬时
- 判断一个链表里面是否有环
- 深层次分析linux2.6input子系统
- 1.Spring bean常见属性的注入:bean
- char str[] 和 char *str 的区别
- cpsr与cpsr_c的区别
- 托管状态与游离状态
- 2.Spring bean常见属性的注入:属性编辑器,String->java.util.Date
- c++面向对象编程必备“良方”
- asp.net中repeater控件的嵌套和实现分页
- USACO Spinning Wheels, bitset使用
- 最有价值的编程忠告
- struts 2.x版本 datetimepicker日期控件的使用
- 3.Spring bean常见属性的注入:applicationContext-beans.xml
- JMX