hibernate inverseJoinColumns是什么意思?

时间:2016-08-07 18:49:39

标签: hibernate

我理解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;
}

2 个答案:

答案 0 :(得分:14)

来自javadocs,意思是:

  

(可选)连接表的外键列引用不拥有关联的实体的主表

以外行人的术语来说,Category的列将用作当前实体与JoinTable之间Category关系的一部分。

如果您未在joinColumns注释上指定inverseJoinColumns@JoinTable,则持久性提供程序会假定主键加入关系的主键并仍然存储等效的 ID 默认情况下表中两个相关实体的列。

答案 1 :(得分:0)

InverseJoinColumn用于自定义关联的类引用变量名称的表中的列名称。该列充当外键。