如何映射两个具有 pojo 的表,但它们之间的关系在没有 pojo 的第三个表中定义



我正在使用Hibernate作为应用程序。我有两个具有多对多关系的表,并且我都有它们各自的POJO。但是关系是在第三个表中定义的,该表没有POJO。如何关联我的两个表并使用它们

假设您有表 A 和表B 的 POJO,并希望在表 C 中关联它们之间的多对多关系,而无需为 TableC 创建 POJO。

如果表 C 仅包含两列,这些列对表 A 和表 B 具有外键约束,则可以使用 @ManyToMany@JoinTable 来实现它:

@Entity
public class TableA{
  @ManyToMany
  @JoinTable(
        name = "TableC",
        joinColumns = {@JoinColumn(name = "TableA_ID")},
        inverseJoinColumns = {@JoinColumn(name = "TableB_ID")}
  )
  private List<TableB> tableB= new ArrayList<TableB>();
}
@Entity
public class TableB{
  @ManyToMany(mappedBy="tableB")
  private List<TableA> tableA= new ArrayList<TableA>();
}
但是,如果表 C

包含更多对其他表没有外键约束的附加列(例如用于 last_modified_date 的列),则无法执行此操作,您必须将表 C 声明为 POJO,并将多对多关联建模为与表 C 的两个一对多关联。

最新更新