在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。
2009-05-03 19:02
309 查看
在提交修改的时候.不能正常修改.
同事告诉我,是因为我的 提交修改的东西是 一个临时状态.并没有和数据库关联.
在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。
临时状态:当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时数据的内存区域,如果没有变量引用这个对象,则会被jre垃圾回收机制回收。这个对象所保存的数据与数据库没有任何关系,除非通过Session的save或者SaveOrUpdate把临时对象与数据库关联,并把数据插入或者更新到数据库,这个对象才转换为持久对象。
例如:Emp e=new Emp(); //创建临时对象
e.setEmpno((long) 8888);
e.setEName("mike");
...
EmpDAO d=new EmpDAO();
d.save(e); //持久化
...
持久状态:持久化对象的实例在数据库中有对应的记录,并拥有一个持久化表示(ID)。对持久化对象进行delete操作后,数据库中对应的记录将被删除,那么持久化对象与数据库记录不再存在对应关系,持久化对象变成临时状态。
持久化对象被修改变更后,不会马上同步到数据库,知道数据库事务提交。在同步之前,持久化对象是脏的(Dirty)。
例如:
Emp e=new Emp(); //创建了临时的对象
EmpDAO edao= new empDAO();
e=edao.findbyEmpno((long) 7786); //使对象与数据库记录对应,从而持久化
e.setEname("新的名字"); //修改了持久化对象,使之处于 Dirty
......
edao.saveorupdate(e); //保存,但是仍然 Dirty
tran.commit(); //提交,实现与数据库同步,不再Dirty
......
游离状态:当Session进行了Close、Clear或者evict后,持久化对象虽然拥有持久化标识符和与数据库对应记录一致的值,但是因为会话已经消失,对象不在持久化管理之内,所以处于游离状态(也叫:脱管状态)。游离状态的对象与临时状态对象是十分相似的,只是它还含有持久化标识。
其中,持久化状态的对象,简称为:PO
而临时状态和游离状态的对象,简称为: VO
同事告诉我,是因为我的 提交修改的东西是 一个临时状态.并没有和数据库关联.
在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。
临时状态:当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时数据的内存区域,如果没有变量引用这个对象,则会被jre垃圾回收机制回收。这个对象所保存的数据与数据库没有任何关系,除非通过Session的save或者SaveOrUpdate把临时对象与数据库关联,并把数据插入或者更新到数据库,这个对象才转换为持久对象。
例如:Emp e=new Emp(); //创建临时对象
e.setEmpno((long) 8888);
e.setEName("mike");
...
EmpDAO d=new EmpDAO();
d.save(e); //持久化
...
持久状态:持久化对象的实例在数据库中有对应的记录,并拥有一个持久化表示(ID)。对持久化对象进行delete操作后,数据库中对应的记录将被删除,那么持久化对象与数据库记录不再存在对应关系,持久化对象变成临时状态。
持久化对象被修改变更后,不会马上同步到数据库,知道数据库事务提交。在同步之前,持久化对象是脏的(Dirty)。
例如:
Emp e=new Emp(); //创建了临时的对象
EmpDAO edao= new empDAO();
e=edao.findbyEmpno((long) 7786); //使对象与数据库记录对应,从而持久化
e.setEname("新的名字"); //修改了持久化对象,使之处于 Dirty
......
edao.saveorupdate(e); //保存,但是仍然 Dirty
tran.commit(); //提交,实现与数据库同步,不再Dirty
......
游离状态:当Session进行了Close、Clear或者evict后,持久化对象虽然拥有持久化标识符和与数据库对应记录一致的值,但是因为会话已经消失,对象不在持久化管理之内,所以处于游离状态(也叫:脱管状态)。游离状态的对象与临时状态对象是十分相似的,只是它还含有持久化标识。
其中,持久化状态的对象,简称为:PO
而临时状态和游离状态的对象,简称为: VO
相关文章推荐
- Hibernate对象三种状态:临时状态、持久状态和游离状态
- Hibernate 对象的三种状态 持久状态 临时状态 游离状态
- Hibernate对象三种状态:临时状态、持久状态和游离状态
- Hibernate持久化对象的生命周期(三种状态:临时、持久、游离 )
- Hibernate持久化对象的生命周期(三种状态:临时、持久、游离 )
- hibernate实体对象的三种状态:自由状态,持久状态,游离状态.
- 浅谈Hibernate中的三种数据状态(临时、持久、游离)
- Hibernate 实体对象三种状态 :自由,持久,游离
- hibernate对象三种状态 持久 游离和 瞬时
- hibernate实体对象的三种状态:自由状态,持久状态,游离状态.
- Hibernate中有三种状态 临时状态 持久状态 游离状态
- hibernate实体对象的三种状态:自由状态,持久状态,游离状态.
- hibernate实体对象的三种状态:自由状态,持久状态,游离状态.
- 关于Hibernate中的对象图关系转换:游离、持久、自由状态
- hibernate中对象的三种状态瞬时态,持久态,游离态区分
- hibernate中的对象有三种状态: 瞬时状态 (Transient),持久状态 (Persistent),
- Hibernate基础-对象的三种状态 瞬时 持久 脱管
- hibernate 对象的状态(临时状态,持久化状态,游离状态)
- Hibernate中的对象图关系转换:游离、持久、自由状态
- Hibernate进阶:理解Hibernate中的四种状态(临时状态,持久状态,游离状态,删除状态)