使用JPA @SecondaryTables连接多个表

时间:2018-03-15 02:38:50

标签: sql hibernate jpa

我需要使用JPA @SecondaryTables连接3个表,其中A.id == B.id和B.id == C.id,我需要将这些表映射到单个实体。我应该尝试的方式是什么?

1 个答案:

答案 0 :(得分:0)

由于A.ID = B.ID = C.ID,您可以只有2个辅助表,其关系为A.ID = B.ID,A.ID = C.ID.您的“主”表将是A,而B和C是您的辅助表。您可以在列声明中引用该表,如下所示。 (为简洁起见,注释中有许多其他参数)

@Entity
@Table(name = "A")
@SecondaryTables({
  @SecondaryTable(name="B", @PrimaryKeyJoinColumn(name="ID", referencedColumnName="ID")),  
  @SecondaryTable(name="C",  @PrimaryKeyJoinColumn(name="ID", referencedColumnName="ID"))
})
public Claass Blah {
  @ID
  private int id;

  @Column(table = "B")
  private String someColumn;

  @Column(table = "C")
  private String someOtherColumn;

etc...
}