数据库对象三种状态

和数据库关联的对象有三种状态:瞬时,持久,脱管。

瞬时:在数据库中还没有与该对象关联的记录,仅仅是一个普通的对象而已,超过作用域,就会被回收。一般都是new出来的对象,并且还没有与session建立联系。

持久:与session建立了联系(session.save(obj)),并且在数据库中已经有了和该对象关联的记录, session没有关闭。

持久态的对象发生改变有两种情况:

1)                 session没有关闭,事务没有提交,此时对象发生改变(setXX)。hibernate会检测到,当事务进行提交时,改变将保存到数据库中。

2)                 session没有关闭,事务已经提交,此时对象发生改变,hibernate会检测到,但要想将改变的数据保存到数据库中,session须重新打开一个事务。

脱管:数据库中已有记录和这个对象对应,但是当前已经和session失去了关联,此时,若对象发生改变,不会影响到数据库。

 

更多详细内容可以参看:http://www.java3z.com/cwbwebhome/article/article8/h3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值