hibernate 对象的三种状态

一、 对象的三种状态(hibernate管理的对象)

           1. 临时状态

               对象的临时状态,形容也就是这个对象(进行了实例化操作的对象)未被 session 会话进行 save 操作或者是这个对象被 session 会话进行了 delete 操作,处于一个可用但不用的状态,有一种备用的感觉

  1.         //此时再通过delete操作,将对象student变为         临时态
  2.         session.delete(student);
  3.         //对象实例化,此时的s对象为          临时态
  4.        Student s = new Student();// 未进行 save 操作
          

            2. 持久状态

                对象的持久状态,证实了这个对象的来源是由hibernate 通过 session 的 get 操作 亦或是 进行了 save 操作而获得的持久态对象,是被 hibernate 所管理的对象

  1.         s.setSid(99999);
  2.         s.setSname("xxxxx");
  3.         //通过session会话的save方法,将s对象状态变为           持久态
  4.         session.save(s);
  5.  
  6.         //通过get方法获得对象,s对象状态变为       持久态
  7.          Student student = session.get(Student.class, 1);
  8.  
  9.          //再次获取session会话,通过update操作,将游离态对象student变为         持久态
  10.         session = SessionFactoryUtil.getSession();
  11.         session.update(student);

            3. 游离状态

                游离状态,一个持久态对象因为 hibernate 不需对它进行管理时,关闭 session 会话, 不对其进行操作, 此时的对象状态就变为了游离状态

  1.         //关闭会话,对象状态变为       游离态
  2.         session.close();

 注:hibernate是通过管理对象来操作数据,这里对象指的是持久化对象;hibernate中的三种状态的对象是可以相互转换的,通常编码时只关注持久态对象。关注get、save、update方法所操作后的对象 

   奉上一图

hibernate对象的三种状态

猜你喜欢

转载自blog.csdn.net/Giraffe_it/article/details/84314906