2017-06-02 107 views
1

如何使用@JoinTable加入三張表?@JoinTable加入三張表

我有三個表:

user: 
id, name 

post: 
id, date 

company: 
id, name 

我想創建一個具有以下列的新表:

user_id, post_id, company_id. 

我用:

@JoinTable(name = "new_table", joinColumns = @JoinColumn(name = "user_id"), 
    inverseJoinColumns = @JoinColumn(name = "post_id")) 

不過,我不是確定如何添加第三列。

回答

1

您不能使用@JoinTable註解。 @JoinTable註釋僅用於@ManyToMany關係。

您需要創建一個具有三個字段的新實體,並且每個字段必須具有@ManyToOne和@JoinColumn註釋。

比如:

@Entity 
@Table(name = "table_name") 
class NewEntity { 

    //Id and anothers fields 

    @ManyToOne 
    @JoinColumn(name = "user_id") 
    private User user; 

    @ManyToOne 
    @JoinColumn(name = "post_id") 
    private Post post; 

    @ManyToOne 
    @JoinColumn(name = "company_id") 
    private Company company; 

    //getters and setters  
}