Hibernate学习之三种状态及生命周期(图)

三种状态:

 

生命周期:

代码表示:

//三种状态
	public void testThreeState(){
		TUser user=new TUser();
		user.setName("spark");  //此时user处于Transient
		
		try {
			Transaction tx=session.beginTransaction();
			session.save(user); //user对象已经由hibernate纳入管理器,处于persistent状态
			tx.commit();
			session.close();   //user对象此时为Detached状态,因为与其关联的session已经关闭
			
			Transaction tx2=session2.beginTransaction();
			session2.update(user);//user对象借助session2,由hibernate纳入管理容器,恢复persistent状态   update并没有发送sql语句
			user.setName("spark_1");//处于persistent状态,其属性变更将自动由hibernate固话到数据库中   !!!!
			tx2.commit();           //commit之前调用session.flush()在其中发送sql语句
		} catch (HibernateException e) {
			e.printStackTrace();
		}
	}

版权声明:本文为wangchenyang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wangchenyang/archive/2011/08/23/2150373.html