hibernate已知外键ID,在保存时怎样才不用将外键的对象再次查询一遍呢
hibernate已知外键ID,在保存时怎样才不用将外键的对象再次查询一遍呢我们保存一个有外键的对象时,要先找到外键对象,然后setObject,可是我现在已经有了外键I...
hibernate已知外键ID,在保存时怎样才不用将外键的对象再次查询一遍呢
我们保存一个有外键的对象时,要先找到外键对象,然后setObject,可是我现在已经有了外键ID,难道非要再次查询出对象才能保存吗? 展开
我们保存一个有外键的对象时,要先找到外键对象,然后setObject,可是我现在已经有了外键ID,难道非要再次查询出对象才能保存吗? 展开
1个回答
展开全部
直接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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询