java - hibernate 保存关联

标签 java hibernate one-to-one

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

谢谢。

最佳答案

没有。您必须从数据库中获取 child 。但是,如果您使用 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 保存关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014885/

相关文章:

java - XPath 解析器 java 冗余

java - 在 Java 中,更改后的 @NamedQueries 是否立即可用,或者 Hibernate 中是否存在缓存问题?

java - Postgresql-Hibertnate 重复键值违反唯一约束

java - 具有映射属性的实体的 Hibernate 查询

java - Hibernate 一对一 DTO 实体群体

java - 为什么我的方法调用转换不能将 2d ArrayList 转换为 2d List?

java - 连接到 Axon 服务器时更改节点的实例名称

java - 如何加载实际的 Hibernate 实体关联而不是 LAZY 代理

java - 可为空到 true 的一对一关系以及使用主键的关系

NHibernate,一对一映射,级联插入