Hibernate 的对象状态
来源:互联网 发布:陈舜臣 知乎 编辑:程序博客网 时间:2024/05/17 17:17
1.瞬时状态(Transient)
瞬时状态是指对象由new 操作符创建,且尚未与hibernate Session关联的对象。即未被Session对象的save和update等方法持久化到数据库中去,并且未被赋予持久化标示的。如果瞬时对象在程序中没有被引用,他将被GC销毁。
如:
Cat cat=new Cat(" 2017-01-01",mother_cat);//mother_cat 是cat的一个Cat类的示例。
Session session=HibernateUtil.getSession();
Transcation tr=session.beginTransaction();
session.save(mother_cat);
tx.commit();
session,close();
此例中的cat对象便是一个瞬时的对象,它虽然被初始化,但并未被Session对象持久化到数据库中,随着其生命周期的结束,该对象所占用的内存将被回收。
2.持久状态(Persistent)
持久状态对象指与数据库表中的某一条记录相对应,已经获取持久化标示的对象,持久化对象有可能是刚刚被保存的(sava方法),或者刚刚被加载的(load方法),无论哪种情况。它任然存在于相关联的Session作用范围内,也就是所Session任然可以对该持久对象(换句话说,是数据库中的表中的某条记录)进行操作。Hibernate会检测处于持久状态的对象的任何改动。在当前的session的操作执行完毕时对象数据与数据库中进行同步。可以直接理解为持久状态的对象为数据库表中记录中的一个快照。他们在session的作用范围保持一致的,而保持一致的操作是由Hibernate完成的,无需开发者手动执行如update操作。
session.save(mother_cat);
此语句就是将瞬时状态的对象转化为持久化状态的对象。
3.脱管状态
脱管状态对象是指在session作用范围之外的持久对象。与持久对象关联的session被关闭之后,对象由持久状态转化为脱管状态,脱管对象可以被继续修改,如果重新关联到某个新的session中的时候,会再次转变为持久对象,同时所有修改将被持久化到数据库。
状态转换图:
- hibernate的对象状态
- Hibernate对象的状态
- Hibernate的对象状态
- Hibernate对象的状态:
- Hibernate对象的状态
- Hibernate 的对象状态
- Hibernate:对象的状态
- Hibernate对象的状态
- Hibernate 的对象状态
- 【Hibernate】对象的状态
- hibernate的对象状态
- Hibernate 对象状态的理解
- Hibernate中对象的状态
- Hibernate的对象状态是什么?
- hibernate中对象的状态
- Hibernate中对象的状态
- 【Hibernate二】对象的状态
- Hibernate之对象的状态
- js或者vue获取object数组长度
- Maven跳过测试
- java编程基础
- java long.valueof long.parselong 区别
- 手把手教你写专利申请书·如何申请专利
- Hibernate 的对象状态
- 怎么选择电脑?
- MEME从安装到使用
- 剑指Offer-3
- mysql开启binlog日志和慢查询日志
- 多类别分类问题由 confusion matrix 到分类准确率(accuracy)的计算
- MySQL查看修改默认编码
- Sqlite-JDBC查询datetime类型抛异常
- 前端面试题链接