Hibernate入门(四)之持久化对象的三种状态

2017-12-05  本文已影响20人  再见信仰

持久化对象的三种状态概述

Hibernate为了更好的管理持久化类,将持久化类分成了三种状态。


代码演示三种状态:

public static void main(String[] args) {
        //1.读取配置
        Configuration config = new Configuration().configure();
        //2.构建Session工厂类
        SessionFactory sessionFactory = config.buildSessionFactory();
        //3.获取session对象
        Session session = sessionFactory.openSession();
        //4.开启事务
        Transaction transaction = session.beginTransaction();
        //5.创建持久化类对象
        Customer customer = new Customer();         //此时处于瞬时态 未与session关联,没有OID
        customer.setCust_name("GaoQiAn");

        Serializable id = session.save(customer);  //此时处于持久态 加入到Session缓存且关联的Session未关闭,有OID

        //7.提交事务
        transaction.commit();

        //8.释放资源
        session.close();

        System.out.println(customer);               //此时位于脱管态  存在持久化表示OID,只是失去了与当前Session的关联
    }

Hibernate持久化对象的三种状态转换

持久化对象的三种状态可以通过调用Session中的一系列方法实现状态间的转换,具体如下:

  1. 瞬时态对象换到其他状态
  1. 持久态对象转换到其他状态。持久化对象可以直接通过Hibernate中的Session的get()、load()方法,或者Query查询从数据库中获得,持久态对象转换到其他状态总结如下:
  1. 脱管态对象转换到其他状态。脱管态对象无法直接获得,是由其他状态转换而来的。

上一篇 下一篇

猜你喜欢

热点阅读