1
エンティティは次のようになっています。他のエンティティに対してエンティティを共有するにはどうすればいいですか?OneToMany
@Entity
class Property extends BaseEntity {
@Basic
private String name;
@Basic
private String value;
}
基本的な意図は、このエンティティを他のエンティティプロパティとして使用することです。
@Entity
class MyEntity extends BaseEntity {
@OneToMany
private List<Property> properties;
}
@Entity
class YourEntity extends BaseEntity {
@OneToMany
private List<Property> properties;
}
どうすればよいですか?各オーナーのフィールドをProperty
に定義する必要がありますか?
@Entity
class Property extends BaseEntity {
@Basic
private String name;
@Basic
private String value;
@ManyToOne(optional = true)
private MyEntity myEntity;
@ManyToOne(optional = true)
private YourEntity yourEntity;
@ManyToOne(optional = true)
private OtherEntity otherEntity;
}
あなたの「財産」と他のエンティティとの間で共有したいレベルによって異なります。たとえば、YourEntity、MyEntityなどはすべて同じプロパティを参照できますか?または、参照元ごとにpopertyが一意であるかどうか。後であれば、集約コレクションを調べて、各所有エンティティが参照用に独自のPropertyテーブルを取得し、Propertyに一意のIDが不要になるようにすることができます。共有する場合は、それを識別する独自のIDが必要です。または、名前/値のペアを複合IDにすることができます – Chris