您的位置:首页 > 其它

hibernate的三种状态转换

2018-05-19 16:23 21 查看

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



阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: