Hibernate对象持久化的三种状态
1、三种状态:
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Student student=new Student();//瞬时态 student.setSname("zzzz");//瞬时态 student.setSex("男");//瞬时态 student.setBirthday("2019-11-11");//瞬时态 student.setClassno("201911");//瞬时态 student.setPoint(111);//瞬时态 student.setPhone("1873496511");//瞬时态 student.setEmail("");//瞬时态 session.save(student);//持久化状态 transaction.commit(); session.close();//游离状态 }
(1)游离态(没有id没有与session关联):
(2)持久化态(有id,与session有关联),在事务没有提交之前变为持久态:
执行了session.save(student);后生成了id值,但是并未执行insert语句。
(3)游离(托管)态:有id,没有与session关联:
2、持久化状态的特点:
持久化对象的任何变化都会自动同步到数据库。