如何使用外键保存实体,而不在JPA中加载相关实体?[英] How do I save an entity with foreign key without loading the related entity in JPA?

问题描述

我有两个实体:

Account {
  @Id
  Long id;
}

Preference {
  ...
  @ManyToOne
  private Account account;
}

保存首选项时,我有 accountId,但我没有 Account 实体.在这种情况下我应该如何保存偏好?

加载 Account 实体并将其设置为首选项?对我来说,这似乎是一次错误的数据库之旅.

是否有一个可持久化的 accountId 字段并将 Account 字段设为只读?同时拥有 accountId 字段和 Account 字段似乎是多余的?

使用 NamedQuery 来持久化 Preference?我希望只是一般地保存一个没有特殊逻辑的实体.

推荐答案

使用em.getReference(Account.class, accountId).它在实体上返回一个未初始化的代理,而不去数据库.您的用例是此方法存在的主要原因.

本文地址:https://www.itbaoku.cn/post/978763.html