java相关,关于hibernate中判断持久化对象的状态的问题,谢谢!

(1)问题1:以上是两个例题。请问,后边黑体标出的状态都正确吗?(2)问题2:判断一个对象的状态可不可以这么判断:首先看是否被session管理,如果是,那么肯定是持久化... (1)问题1:以上是两个例题。请问,后边黑体标出的状态都正确吗?
(2)问题2:判断一个对象的状态可不可以这么判断:
首先看是否被session管理,如果是,那么肯定是持久化状态;如果不是继续判断。
再判断DB中是否有这一条记录,如果有那么是脱管状态,否则是瞬时状态。
这么判断对吗?如果不正确,能否提供一个判断依据(思路类似上述的)。
(3)问题3:save和commit方法的问题。save后发出sql语句对吗?那么commit是什么含义呢?如果不commit貌似也可以呢。而且,session.save(stu)一个瞬时对象后对象就立马变味了一个持久化对象了吗?

谢谢!
【注释:瞬时状态即transient,持久化状态及persistent,脱管状态即detached】
展开
 我来答
孤单旅行ing
2014-04-27
知道答主
回答量:6
采纳率:0%
帮助的人:5.2万
展开全部
有些语句完全没必要标注,没必要非要弄清楚哪句是什么状态,
暂时态:和Session没有发生任何关系的对象;
持久态:和Session发生了关系,如save、get、query方法;
游离态:用session.evict(Object obj)方法,即和Session解除关系;
如果你映射文件没问题那save方法正确,commit就相当于直接对数据库进行操作的时候用到的commit,目的是确保修改记录插入到数据库中
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式