JPA中的多态关联
我喜欢在数据库中有一个表地址和多个不相关的实体,例如User、Office和ADDRESS实体有一对多的关系。简而言之,我的实体看起来就像JPA中的多态关联,jpa,Jpa,我喜欢在数据库中有一个表地址和多个不相关的实体,例如User、Office和ADDRESS实体有一对多的关系。简而言之,我的实体看起来就像 @Entity public class Address { @Id private long id; @Column private String entityType; // served as discriminator e-g User,Office ... @Column private long entityId; // serve
@Entity
public class Address {
@Id
private long id;
@Column
private String entityType; // served as discriminator e-g User,Office ...
@Column
private long entityId; // served as foreign key
... other address columns
}
用户类
public class User {
@Id
private long id;
@OneToMany
private List<Adress> addresses;t
}
公共类用户{
@身份证
私人长id;
@独身癖
私有列表地址;t
}
办公室类
@Entity
public class Office {
@Id
private long id;
@OneToMany
private List<Adress> addresses;
}
@实体
公课办公室{
@身份证
私人长id;
@独身癖
私人名单地址;
}
我尝试了@Any of Hibernate,但这对一对多关系没有帮助。它要么有多对一的关系,要么有多对多的关系。在JPA中实现这一点的最佳方法是什么。通常,方法是使您的地址成为可嵌入的,但这取决于用例。如果你的地址有自己的标识,我可以理解,但是你能告诉我们你的数据库表是什么样子吗?因为外键只能指向一个其他表
@embeddeble
将使地址表关系为一对一,但在我们的例子中,一个人可以有多个地址,例如邮件地址、账单地址等。地址表将有primarykey=id、外键=entityType、entityId、,一个字符串字段,用于标识地址、类型等。正确的索引编辑似乎与以下操作相同: