hibernate保存关联

Alb*_*rto 4 java hibernate one-to-one

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

谢谢.

JB *_*zet 6

不,您必须从数据库中获取孩子.但是如果你使用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);
Run Code Online (Sandbox Code Playgroud)