【问题标题】:hibernate save associations休眠保存关联
【发布时间】:2011-11-04 19:41:56
【问题描述】:
层次结构如下:父对象与子对象相关联。
我创建了一个新的 Parent 对象,并希望将其与已存储在数据库中的 Child 对象相关联,并将 Parent 保存到数据库中。一种方法是预加载子项并将其与父项关联。
但是我可以创建一个新的 Child 对象,设置它的 id,并将它与 Parent 相关联,这样当我保存 Parent 时,hibernate 会自动找到合适的 Child 并填写最初设置为 null 的缺失 Child 字段吗?
谢谢。
【问题讨论】:
标签:
java
hibernate
one-to-one
【解决方案1】:
没有。您必须从数据库中获取孩子。但是如果你使用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);