我正在为应用程序使用hibernate。我有两个具有多对多关系的表,并且它们都有POJO。但是关系是在没有POJO的第三个表中定义的。我如何关联我的两个表并使用它们
问问题
923 次
1 回答
2
假设您有 TableA 和 TableB 的 POJO,并且希望在 Table C 中关联它们之间的多对多关系,而不为 TableC 创建 POJO。
如果表 C 仅包含对表 A 和表 B 具有外键约束的两列,则可以使用@ManyToMany
and来实现@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 回答