JPA の同じフィールドに @JoinColumn と @Column の両方を使用して、両方からの更新を有効にすることはできますか?
次のようなエンティティがあるとします。
@Entity
public class Person{
@JoinColumn(name = "address_id", referencedColumnName = "id")
@ManyToOne
private Address address;
// getters and setters
}
Address オブジェクトが既に存在すると仮定すると、このオブジェクトを作成するときは、Person を永続化する前にデータベースからアドレスをフェッチする必要があります。これは私のアプリケーション全体の現在の設計ですが、パフォーマンスの問題を引き起こす可能性があります。実際のオブジェクトを保持する可能性を維持しながら、ID のみを使用して保持する可能性を追加することは可能ですか (他の場所で大量のコードを変更する必要がないため)。このようなもの
@Entity
public class Person{
@JoinColumn(name = "address_id", referencedColumnName = "id")
@ManyToOne
private Address address;
@Column(name="address_id")
private Integer addressId;
// getters and setters
}
em.persist(new Person(1));
em.persist(new Person(getAddress(1)));
これらの持続行の両方を許可するように注釈を付けることは可能ですか? 私の現在の信念は、フィールドの1つが持つ必要があるということですinsertable = false