hibernate的三种状态转换

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自动进行数据库的操作,实时更新数据库



猜你喜欢

转载自blog.csdn.net/qq_31816247/article/details/80375014