【hibernate框架】对象的三种状态Transient-Persistent-Detached
2015-01-31 16:45
393 查看
三种状态分别是
Transient(游离状态),Persistent(持久化状态),Detached(脱管状态)。
Teacher t=new Teacher();
t.setName("t12");//游离状态
t.setTitle("中级");//游离状态
t.setBrithday(new Date());//游离状态
t.setZhicheng(ZhiCheng.A);//游离状态
SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
Session session=sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(t);//持久化状态
session.getTransaction().commit();
System.out.ptintln(t.getId);//脱管状态
三种状态的区分关键在于:
a)有没有ID(没有ID一定是Transient状态)
b)ID在数据库中有没有
c)在内存中有没有(session缓存)
Transient(游离状态):内存中一个对象,没ID,缓存里没有,数据库中也没有。
Persistent(持久化状态):内存中有,缓存中有,数据库中有(ID)。
Detached(脱管状态):内存有,缓存没有,数据库有,ID。
什么是缓存?
缓存可以提高访问效率,原来的东西放在硬盘上,用东西每次都从硬盘去取,效率很低。这时候可以在内存中保留一份,要用的时候去内存里去取,所以缓存就是内存中的一块区域,里面放着一系列的我们想要提高读取效率的对象或者引用。
转载请注明出处:http://blog.csdn.net/acmman/
Transient(游离状态),Persistent(持久化状态),Detached(脱管状态)。
Teacher t=new Teacher();
t.setName("t12");//游离状态
t.setTitle("中级");//游离状态
t.setBrithday(new Date());//游离状态
t.setZhicheng(ZhiCheng.A);//游离状态
SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
Session session=sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(t);//持久化状态
session.getTransaction().commit();
System.out.ptintln(t.getId);//脱管状态
三种状态的区分关键在于:
a)有没有ID(没有ID一定是Transient状态)
b)ID在数据库中有没有
c)在内存中有没有(session缓存)
Transient(游离状态):内存中一个对象,没ID,缓存里没有,数据库中也没有。
Persistent(持久化状态):内存中有,缓存中有,数据库中有(ID)。
Detached(脱管状态):内存有,缓存没有,数据库有,ID。
什么是缓存?
缓存可以提高访问效率,原来的东西放在硬盘上,用东西每次都从硬盘去取,效率很低。这时候可以在内存中保留一份,要用的时候去内存里去取,所以缓存就是内存中的一块区域,里面放着一系列的我们想要提高读取效率的对象或者引用。
转载请注明出处:http://blog.csdn.net/acmman/
相关文章推荐
- 【SSH快速进阶】——探索Hibernate对象的三种状态:Transient、Persistent、Detached
- hibernate中处理对象的transient、persistent、detached三种状态
- hibernate--对象的三种状态Transient,Persistent,Detached
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- hibernate中对象的3种状态——瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
- 5.hibernate中对象的三种状态:Transient、Persistent和Detached
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- Hibernate学习之Transient、Persistent、Detached三种状态
- hibernate中的三种状态:瞬时态(Transient),持久态(Persistent),脱管态(Detached)
- 转]Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)
- hibernate中对象的3种状态:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
- Hibernate中的对象有三种状态: 瞬时状态 (Transient),持久状态 (Persistent),
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- hibernate中的对象有三种状态: 瞬时状态 (Transient),持久状态 (Persistent),
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
- Hibernate实体3种状态Transient/Persistent/Detached
- 【Hibernate框架】对象的三种持久化状态
- 【Hibernate框架】对象的三种持久化状态
- 1.13 对象的三种状态(transient,peisistent,detached)
- 【Hibernate框架开发之五】Hibernate对象的三种状态&&Session的常用方法