hibernate有三种状态,分别为瞬时状态、持久化状态、游离或托管状态。
1.瞬时状态:
是指刚创建一个实例对象,没有与自增的id和session有关联
SessionFactory conf=new Configuration().configure().buildSessionFactory(); Session session = conf.openSession(); //session获得操作事务的Transaction对象,此为获得一个事务对象并开启事务 Transaction ts=session.beginTransaction() Customer cus=new Customer();//没有id,没有与session有关联=》瞬时状态
cus.setCust_name("旺达");瞬时状态
2.持久化状态
当进行保存时、更新会变成持久化状态
session.save(cus);//持久化状态--与id、session有关联
session.update(cus);//持久化状态--与id、session有关联
3.游离状态
当与某持久状态关联的session关闭之后,即由持久状态转变为游离状态
session.close();//释放资源---游离状态,数据库里面跟id有关,但跟session无关 ,即数据库存在该对象,但是该对象又没有被session所托管
三种状态的转换图可以描述为:
saveorupdate()方法可以把游离对象和瞬时对象转变为持久对象。
转变为持久化状态的好处是:使hibernate自动进行数据库的操作,实时更新数据库