2

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

4

1 回答 1

2

假设您有 TableA 和 TableB 的 POJO,并且希望在 Table C 中关联它们之间的多对多关系,而不为 TableC 创建 POJO。

如果表 C 仅包含对表 A 和表 B 具有外键约束的两列,则可以使用@ManyToManyand来实现@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 的多对多关联

于 2012-04-10T07:52:58.210 回答