0
有關瞬態對象的Hibernate文檔: - 它在數據庫中沒有持久表示,並且未分配標識符值。
這裏的標識符值究竟是什麼意思?在這種情況下標識符值的含義?
有關瞬態對象的Hibernate文檔: - 它在數據庫中沒有持久表示,並且未分配標識符值。
這裏的標識符值究竟是什麼意思?在這種情況下標識符值的含義?
hibernate中有3個對象(實例)狀態。
瞬態:對象是在過渡狀態下,如果剛剛創建它,但具有沒有主鍵(標識符)和不與會話相關聯的。
因此,它在數據庫中沒有持久表示,並且沒有分配標識符值(即,與瞬態對象相關的數據庫中沒有任何操作(保存/更新))。
持久:對象是持久化狀態,如果會話開放,你只是保存實例數據庫或檢索從數據庫的實例。
獨立:對象是在分離狀態下,如果會話是關閉。在分離狀態之後,如果調用lock()或update()方法,則對象將變爲持久狀態。
持久實例在數據庫中有一個表示形式,一個標識符值並與一個Session相關聯。 您可以通過將其與會話關聯來使暫時實例持久化。
在下面的代碼示出了對象的所有3個狀態中的休眠:
Employee e1=new Employee();
e1.setName("Rohit");
Employee e2=new Employee();
e2.setName("Glenn");
//The above objects e1 & e2 are in transient state.
SessionFactory sessionFactory=HibernateUtil.getSessionAnnotationFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
session.persist(e1);
session.persist(e2);
//now, the objects e1 & e2 are in persistent state.
tx.commit();
session.close();
e1.setName("Mitchell");
e1.setName("Joe");
//now objects e1 & e2 are in detached state.