如何使用@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"))
但是,我不确定如何添加第三列。
最佳答案
您不得使用@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
}
关于java - @JoinTable 连接三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44336116/