在使用JPA 2.1和Hibernate的Spring Boot应用程序中,有两个感兴趣的(PostgreSQL)表:
entity external_id -- -- id serial id serial ... entity_id int ... external_id int
实体和external_ids之间的关系显然是OneToMany,我也想在JPA映射中使用它。一个简单的方法是为每个表创建@ Entity-mappings并使用@ OneToMany-relation:
max-width: 1200px
但是由于表external_ids只保存了实体的每个成员的数字列表,我想没有表external_id的显式映射,并立即映射external_id.external_id的值:
@Entity
public class Entity {
@Id
private Integer id;
@OneToMany(mappedBy= "entityId")
private Set<ExternalId> externalIds;
}
@Entity
public class ExternalId {
@Id
private Integer id;
@ManyToOne
private Integer entityId;
private Integer externalId;
}
JPA 2.1是否可以实现这一点,如果可以的话?
答案 0 :(得分:4)
您可以将@ElementCollection
用于此目的:
@ElementCollection
@CollectionTable(name = "TableName", joinColumns=@JoinColumn(name = "JoinColumnName"))
private Set<Integer> externalIds;