如何在不加载JPA中的相关实体的情况下使用外键保存实体?

Gue*_*erd 15 java orm jpa

我有两个实体:

Account {
  @Id
  Long id;
}

Preference {
  ...
  @ManyToOne
  private Account account;
}
Run Code Online (Sandbox Code Playgroud)

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

加载帐户实体并将其设置在首选项上?对我来说,这似乎是错误的数据库之旅.

是否具有可持久的accountId字段并将"帐户"字段设置为只读?同时拥有accountId字段和Account字段似乎是多余的?

使用NamedQuery来保留首选项?我希望只是一般地保存一个没有特殊逻辑的实体.

JB *_*zet 14

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