java - 有没有一种方法可以在不在 hibernate 状态下加载父项的情况下将父项与子项链接起来?

标签 java hibernate parent

问题是选择几个父实体并将它们与相应的子实体链接起来。对于此类任务,根本不应加载父项(例如,仅收集 ID)或加载惰性字段。

  1. 是否有通过 ID 链接 2 个实体的 API(解决方法)?例如。不加载父级并调用 setChild
  2. 有没有一种方法可以将所有惰性字段加载到父级,即使其中一些被定义为急切的?正如我所搜索的那样,hibernate 支持覆盖加载类型。例如。可以编写仅加载选定字段的 Criteria。但这不是很舒服的方式,因为可以添加带有 eager 类型的新实体类。
  3. 我可以加载一个包含同一个 child 的投影,为它设置 child ,然后像实体类一样持久化它吗?

最佳答案

如果你有父 ID 并且 child 通过外键与父关联,你可以使用假父

Parent parent = new Parent();
parent.setId(parentId);
child.setParent(parent);
// save child

如果你想加载带有惰性字段的父级,你应该使所有父级的字段成为惰性的,并使用 join fetch 获取它们或通过单独的请求加载。如果您不使用加载的父级来保存数据(例如,您可以在用户编辑数据后构造一个具有相同 ID 的新父级),您可以使用自定义转换器的部分对象加载,如所述 here .

关于java - 有没有一种方法可以在不在 hibernate 状态下加载父项的情况下将父项与子项链接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34472500/

相关文章:

java - 尝试读取进程输入流

java - JPA实体类为什么会有实体名加下划线的类

javascript - jQuery - 将类添加到最近的音频播放器上方的 Div

java - 使用 hibernate 调用 SQL Server 存储过程

java - 如何处理 OffsetOutOfRangeException 错误?

java - JSF bean 中的动态字段

java - Web 服务和 JPA

PHP实例化子类

c# - 从 Expression 函数获取父属性

java - 房间类型转换器不工作