//三種狀態
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();
}
}