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();
		}
	}

posted on 2011-08-23 11:36  重阳真人  阅读(9268)  评论(2编辑  收藏  举报

导航