18

私は2つのエンティティを持っています:

Account {
  @Id
  Long id;
}

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

Preference を保存するとき、accountId はありますが、Account エンティティはありません。この状況で設定を保存するにはどうすればよいですか?

Account エンティティをロードし、プリファレンスに設定しますか? 私には、それはデータベースへの誤った旅行のように思えます。

永続化可能な accountId フィールドがあり、Account フィールドを読み取り専用にしますか? accountId フィールドと Account フィールドの両方を持つことは冗長に思えますか?

NamedQuery を使用して設定を永続化しますか? 特別なロジックなしでエンティティを一般的に保存することを望んでいました。

4

2 に答える 2

15

を使用しem.getReference(Account.class, accountId)ます。データベースにアクセスせずに、エンティティで初期化されていないプロキシを返します。あなたのユースケースは、このメソッドが存在する主な理由です。

于 2012-10-10T21:48:42.850 に答える