2016-08-07 72 views
5

Tôi hiểu chú thích jibernate @JoinTable, nhưng tôi không hiểu inverseJoinColumns. Cái này được dùng để làm gì?ý nghĩa của hibernate inverseJoinColumns là gì?

ví dụ:

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

Trả lời

5

Từ javadocs, nó có nghĩa là:

(Tùy chọn) Các cột khóa ngoại của bảng tham gia mà tham khảo bảng chính của thực thể mà không sở hữu hiệp hội

Trong thuật ngữ của giáo dân, đó là cột của Category sẽ được sử dụng như một phần của mối quan hệ JoinTable giữa thực thể hiện tại và Category.

Nếu bạn không chỉ định joinColumnsinverseJoinColumns trên @JoinTable chú thích, các nhà cung cấp bền bỉ giả định một khóa chính để tham gia khóa chính mối quan hệ và vẫn lưu trữ tương đương ID cột cho hai thực thể liên quan trong bảng theo mặc định.