我正在使用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 的两个一对多关联。