hibernate已知外键ID,在保存时怎样才不用将外键的对象再次查询一遍呢

hibernate已知外键ID,在保存时怎样才不用将外键的对象再次查询一遍呢我们保存一个有外键的对象时,要先找到外键对象,然后setObject,可是我现在已经有了外键I... hibernate已知外键ID,在保存时怎样才不用将外键的对象再次查询一遍呢
我们保存一个有外键的对象时,要先找到外键对象,然后setObject,可是我现在已经有了外键ID,难道非要再次查询出对象才能保存吗?
展开
 我来答
fuhaiwei
2014-05-05 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1380万
展开全部
直接session.update(obj),当然该obj必须有ID。
更多追问追答
追问
能说详细点吗?
追答
Session session = sf.openSession();
User user = new User("admin", "admin");
session.save(user);
session.flush();
session.close();

//持有托管态对象的情况下
user.setPassword("12345");
Session session2 = sf.openSession();
session2.update(user);
session2.flush();
session2.close();

//不持有托管态对象的情况下
User user2 = new User("admin", "pass123");
user2.setId(1L);
Session session3 = sf.openSession();
session3.update(user);
session3.flush();
session3.close();

 注意数据库中必须有对应ID的数据行存在,否则会报错。

如果不确定有没有,请用saveOrUpdate

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式