hibernate持久化的三种状态

持久化的三种状态

hibernate是持久层类型框架,通过持久化类完成ORM框架操作,hibernate为了更好的管理持久化类,将持久化类分为三种状态:持久化类 = java类 + 映射

瞬时态
  • 这种对象没有唯一的标识OID,没有session管理,称为瞬时态对象
持久态
  • 这种对象有唯一标识OID,被session管理,称为是持久态对象
    *持久化类的持久态的对象,可以自动更新数据库
脱管态
  • 这种对象有唯一的标识OID,没有被session管理,称为脱管态对象

如何区分三种状态对象

在这里插入图片描述

持久化类的状态转换

瞬时态对象
  • 瞬时态对象
    • 获得
      • Customer customer = new Customer ();
    • 状态转换
      • 瞬时-》持久
        • save(Object obj)、saveOrUpdate(Object obj);
      • 瞬时-》托管
        • customer.setCust_id(1)
  • 持久态对象
    • 获得
      • get()、load()、find()、iterate()
      • Customer customer = session.get(Customer.class,1l);
    • 状态转换
      • 持久-》瞬时
        • delete();
      • 持久-》脱管
        • close()、clear()、 evict(Object obj);
  • 脱管态对象
    • 获得
      • Customer customer = new Customer (); customer 。set_id(1);
    • 状态转换
      • 脱管-》持久
        • update()、saveOrUpdate(Object obj);
      • 脱管-》瞬时
        • customer .setid(null);

持久态对象

持久化类持久态对象自动更新数据库

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Woo_home/article/details/89318165