hibernate中保存一个对象后再设置此对象的属性为什么不需要调用update方法了

例如session.save(user);user.setAge(20);... 例如
session.save(user);
user.setAge(20);
展开
 我来答
fuhaiwei
推荐于2018-09-09 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1380万
展开全部
hibernate对象的三种状态。
瞬时态(没有id,不与session关联)
持久态(有id,与session关联)
托管态(有id,不与session关联)

User user = new User();//新建的对象是瞬时态

session.save(user);//save后,user变成持久态

user.setAge(20);//对持久态的改变,会在session提交时自动更新数据库

session.close();//session关闭后,user变成托管态

user.setAge(19);//这时改变其属性,将不会自动更新数据库

session.update(user);//更新托管态对象到数据库,并且将其重新变为持久态。

最后:
session.get()
session.load()
session.createCriteria().list()
查询出来的都是持久态。
百度网友33dcad5a0
2013-10-04 · TA获得超过164个赞
知道答主
回答量:69
采纳率:100%
帮助的人:81万
展开全部
save以后user就在session中了,hibernate有个自动提交功能(auto commit),session结束时可以自动将session里修改过的内容提交到数据库,所以,就是这个现象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幸运的lxd0206
2013-10-03
知道答主
回答量:7
采纳率:0%
帮助的人:5.7万
展开全部
你在setAge的时候直接操作的是user这个引用指向的那个对象的内存,set完之后这个对象中的age就已经是20了,这个不涉及到数据库的增删改查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式