2016-08-07 10 views
5

私はhibernate @JoinTableアノテーションを理解していますが、inverseJoinColumnsを理解できません。それは何のために使われますか?hibernate inverseJoinColumnsの意味は何ですか?

Javadocから

@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; 
} 

答えて

5

は、それが意味する:関連

を所有していないエンティティのプライマリ・テーブルを参照する結合テーブルの

(オプション)外部キー列

素人の用語では、現在のエンティティとCategoryの間のJoinTable関係の一部として使用されるのはCategoryの列です。

あなたは@JoinTable注釈にjoinColumnsinverseJoinColumnsを指定しない場合、永続性プロバイダは、主キーに主キーが関係に参加し、まだデフォルトでは、テーブル内の2人の関連するエンティティのための同等のID列を保存を前提としています。