hibernate中session管理持久化对象时候的三种状态转变
分别为:1、transient 透明状态 2、persistent 持久化状态 3、detached托管状态
分别为:1、transient 透明状态 2、persistent 持久化状态 3、detached托管状态
@Test
public void testHibernateWith3Status(){
Teacher t = new Teacher() ;
t.setName("laoshi") ;
t.setTitle("超级") ;
//视频28
//此时t为状态1 transient状态,只在内存中存在,没有ID,也不在Session缓存中。
System.out.println(t.getId()) ;//输出0
Session session = sessionFactory.getCurrentSession() ;
session.beginTransaction() ;
session.save(t) ; //此时t为状态2 persistent状态,内存有,有ID,数据库有,也在Session缓存中
System.out.println(t.getId()) ;//输出ID
session.getTransaction().commit() ;//提交事务,对象脱离session管理
//此时t为状态3 detached状态 内存有,有ID,数据库有,不在session缓存中,脱离管理
System.out.println(t.getId());//输出ID
}