これはかなり素朴でなければなりませんが、私は@Entity
と@Embeddable
をいつ使うべきか疑問に思っています。@embeddableとコレクションのマッピングのための@entity
私はUser
とNotification
クラスがあります。
@Entity
public class User{
//other properties
@onetomany
private List<Notification> notifications;
}
@Entity
public class Notification{
//properties
}
は、私はクラスUser
とNotification
、およびマッピングのための第三のテーブル用のテーブルがあることを理解しています。 このようにすればどうなりますか?
@Entity
public class User {
//other properties
@ElementCollection
private List<Notification> notifications;
}
@Embeddable
public class Notification{
//properties
}
Notification
の表は作成されません。しかし、私はまだ私の通知オブジェクトを格納することができます。私はdocumentationて行きましたが、疑問のカップル:
- は、それは私が別々のテーブルとしてクラスBを見たいかどうかに基づいてますか?
- テーブルと埋め込み可能なオブジェクトを作成する際のパフォーマンスの違いはありますか?
- テーブルに直接クエリする以外のテーブルで行うことができる埋め込み可能なオブジェクトでは、私は何ができませんか?この質問を読んだ人のため
NOTES
、このquestionはあまりにもあなたを助けるかもしれません。
私はElementCollectionでEmbeddableを使うことができると思います。 @埋め込みRTを使用する必要はありませんか? – shazinltc
私は3点目を得ていませんでした。 – shazinltc
第3ポイント:PersonにはAddress(埋め込み)が含まれているとみなされます。両方に別のテーブルがある場合は、関連付けられたアドレスを直接削除できます。解決するために、整合性制約違反が発生する可能性があります。 – deepakraut