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.