1. 程式人生 > >hibernate 物件的狀態(臨時狀態,持久化狀態,遊離狀態)

hibernate 物件的狀態(臨時狀態,持久化狀態,遊離狀態)

物件的狀態

舉例: User   user   = new User();

Hibernate中物件的狀態: 臨時/瞬時狀態、持久化狀態、遊離狀態。

臨時狀態

特點:

直接new出來的物件; 

不處於session的管理;

資料庫中沒有物件的記錄;

持久化狀態

當呼叫sessionsave/saveOrUpdate/get/load/list等方法的時候,物件就是持久化狀態。

處於持久化狀態的物件,當對物件屬性進行更改的時候,會反映到資料庫中!

特點:

處於session的管理;

資料庫中有對應的記錄;

遊離狀態

特點

             不處於session的管理;

                   資料庫中有對應的記錄

                   Session關閉後,物件的狀態;

物件狀態的轉換,

@Test
	public void test(){
		Session session = HibernateUtil.getSession();
		Transaction transaction = session.beginTransaction();
		User user =new User();//直接new出來的物件 此時資料庫中還沒有資料 這時的狀態是臨時狀態
		user.setUserName("翁宗順");//當呼叫session的save/saveOrUpdate/get/load/list等方法的時候,物件就是持久化狀態。
		session.save(user);//
		transaction.commit();
		session.close();
		System.out.println(user.getUserName);//資料庫中有資料 但是session關閉 在使用的物件就是遊離狀態
		
	}