如何使用@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"))
但是,我不知道如何添加第三列。
答案 0 :(得分:2)
您不能使用@JoinTable注释。 @JoinTable注释仅用于@ManyToMany关系。
您需要创建一个包含三个字段的新实体,每个字段必须包含@ManyToOne和@JoinColumn注释。
For Instance:
@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
}