JPA OneToMany-Mapping没有多边的映射类

时间:2015-09-17 12:11:33

标签: java hibernate jpa

在使用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是否可以实现这一点,如果可以的话?

1 个答案:

答案 0 :(得分:4)

您可以将@ElementCollection用于此目的:

@ElementCollection
@CollectionTable(name = "TableName", joinColumns=@JoinColumn(name = "JoinColumnName"))
private Set<Integer> externalIds;