编程语言
首页 > 编程语言> > java – hibernate保存关联

java – hibernate保存关联

作者:互联网

层次结构如下:父对象与Child对象关联.
我创建一个新的Parent对象,并希望将它与已存储在数据库中的Child对象关联,并将Parent保存到数据库.一种方法是预加载Child并将其与Parent关联.
但是我可以创建一个新的Child对象,设置它的id,并将它与Parent关联,所以当我保存Parent时,hibernate将自动找到相应的Child并填写缺少的Child字段,这些字段最初设置为null?

谢谢.

解决方法:

不,您必须从数据库中获取孩子.但是如果使用session.load而不是session.get,它只会将代理初始化为实际的持久对象,甚至不执行SQL查询.当然,如果实体确实不存在于数据库中,则在刷新时会有异常(或者如果实体稍后在事务中被代码的其他部分提取).

Child child = session.load(Child.class, idOfChild); // no SQL query here
Parent p = new Parent();
p.setChild(child);
session.persist(p);

标签:java,hibernate,one-to-one
来源: https://codeday.me/bug/20190530/1185667.html