2017-06-02 4 views
1

@JoinTableを使用して3つのテーブルを結合するにはどうすればよいですか?@JoinTableで3つのテーブルを結合する

私は3つのテーブルがあります。私が使用

user_id, post_id, company_id. 

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

しかし、私はないです

user: 
id, name 

post: 
id, date 

company: 
id, name 

私は、次の列を持つ新しいテーブルを作成したいが3番目の列を追加する方法を確認してください。

答えて

1

@JoinTableアノテーションは使用しないでください。 @JoinTable注釈は@ManyToMany関係にのみ使用されます。

3つのフィールドを持つ新しいエンティティを作成する必要があり、各フィールドには@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  
} 
関連する問題