hibernate中保存一个对象后,再设置此对象的属性为什么不需要调用update方法?
1个回答
展开全部
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()
查询出来的都是持久态。
瞬时态(没有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()
查询出来的都是持久态。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询