Jpa 如何为其他实体共享一个实体';独身癖
我有一个像这样的实体Jpa 如何为其他实体共享一个实体';独身癖,jpa,Jpa,我有一个像这样的实体 @Entity class Property extends BaseEntity { @Basic private String name; @Basic private String value; } 基本意图是将此实体用作其他实体属性 @Entity class MyEntity extends BaseEntity { @OneToMany private List<Property> propertie
@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;
}
基本上,这是一个很好的解决方案。有一个选项可以创建一个连接表,它将帮助您保持实体“更干净”(也可以用作一个连接表。在大多数情况下,我更喜欢使用您提供的选项[简单是件好事:)),但其他同事对此问题有不同的看法
TL.DR:您提供的代码正在运行,我个人更喜欢它。还有其他方法,但速度稍慢,等等。有很多方法,这取决于您的“财产”以及您希望在其他实体之间共享的级别。例如,YourEntity、MyEntity和其他人能否引用完全相同的属性?或者每个引用实体的权限都是唯一的。如果是后者,您可能希望查看聚合集合,以便每个拥有的实体都有自己的属性表作为其引用,并且属性不需要唯一的ID。如果要共享,则需要自己的ID来标识它,或者您可以将名称/值对设为复合ID
@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;
}