我理解hibernate @JoinTable注释,但我不理解inverseJoinColumns。它用于什么?
e.g。
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "stock_category", catalog = "mkyongdb", joinColumns = {
@JoinColumn(name = "STOCK_ID", nullable = false, updatable = false) },
inverseJoinColumns = { @JoinColumn(name = "CATEGORY_ID",
nullable = false, updatable = false) })
public Set<Category> getCategories() {
return this.categories;
}
答案 0 :(得分:14)
来自javadocs,意思是:
(可选)连接表的外键列引用不拥有关联的实体的主表
以外行人的术语来说,Category
的列将用作当前实体与JoinTable
之间Category
关系的一部分。
如果您未在joinColumns
注释上指定inverseJoinColumns
和@JoinTable
,则持久性提供程序会假定主键加入关系的主键并仍然存储等效的 ID 默认情况下表中两个相关实体的列。
答案 1 :(得分:0)
InverseJoinColumn用于自定义关联的类引用变量名称的表中的列名称。该列充当外键。