コンポーネントの最後のインスタンスを保持するエンティティがあります。
@Entity
public class Customer {
...
@Embedded
public ServiceCall getLastServiceCall() {...}
...
}
@Embeddable
public class ServiceCall() {
public Date getDate();
public Status getStatus();
}
別のテーブル結合を必要とせずServiceCall
に呼び出すために、が埋め込まれています。customer.getLastServiceCall().getDate()
ServiceCall
その関連付けを1対多にし、顧客に1つを埋め込んだまま、すべてのを保存し始めたいと思います。
Hibernateのドキュメント(私が使用しているv3.6)は次のように述べています。
埋め込み可能なオブジェクト(つまり、@ OneToOne、@ ManyToOne、@ OneToMany、または@ManyToMany)で関連付けアノテーションを使用することもできます。関連付け列をオーバーライドするには、@AssociationOverrideを使用できます。
そして、私がしなければならないのは@OneToMany
、LastServiceCall
協会に追加することだけのようです。
それは私のために働きますか?そうでない場合、私の選択肢は何ですか?はいの場合、それは第2レベルのキャッシュにどのように影響しますか?また、その埋め込みインスタンスの更新に制限はありますか(不変オブジェクトを使用できます)?