hibernate对象的状态

Hibernate生命周期
1、临时态也叫自由态:即只是new 类名();
2、持久态:即进行 save()、update()、saveorupdate()、delete(),跟数据库连接了
3、游离态也叫托管态:session.close/evic/clear方法关闭和数据库连接

    public void test1() {
        Configuration configuration = new Configuration();
        configuration.configure();
        SessionFactory  sessionFactory = configuration.buildSessionFactory();   
        Session session = sessionFactory.openSession();
        Transaction transcation = session.beginTransaction();

        Person person = new Person();//临时态
        person.setName("侯艳峰");//临时态
        session.save(person);//持久态
        transcation.commit();//持久态
        session.close();//游离态
    }
临时状态和脱管状态:
  临时状态的对象肯定是从new创建来的
  脱管状态的对象肯定是从持久化状态转化过来的
持久化状态的对象
可以通过session.save/update/get方法把一个对象变成持久化对象
变成持久化状态的对象只说明该对象进入了hibernate的区域
和数据库没有关系,和数据库有关系的只有事务
脱管状态的对象
可以通过session.close/evic/clear方法
hibernate对象的状态_第1张图片
上图可以看出:
在执行71行代码之前person对象已经是持久化对象了所以70行不用写,由此可以看出update()方
法虽然可以等一些方法虽然可以持久化对象,并非单纯的。持久化对象才是真的。

你可能感兴趣的:(hibernate对象的状态)