问题描述
我在应用程序中新创建的表有问题。 我想在dashboard_id 上设置主键,但我遇到了关系问题。 为什么我得到这个? 我有一对多,一个仪表板,许多组。 我该怎么办? 它出什么问题了? 在 Dashboard_groups 表中,我将 groups_id 作为 PK,我想要仪表板 ID。
@ManyToOne(targetEntity = Dashboard.class, fetch = FetchType.EAGER)
@JoinTable(name = "dashboard_groups", joinColumns = {@JoinColumn(name = "groups_id")},
inverseJoinColumns = {@JoinColumn(name = "dashboard_id", referencedColumnName = "id")})
@JsonBackReference(value = "group- dashboard")
private Dashboard dashboard;
@OneToMany(mappedBy = "dashboard", cascade = CascadeType.ALL)
@JsonManagedReference(value = "groups- dashboard")
private List<Group> groups= new ArrayList<>();
1楼
最简单的方法是不使用连接表。
只需在Group
使用外键。
@Entity
class Dashboard {
@OneToMany(mappedBy = "dashboard", cascade = CascadeType.ALL)
private List<Group> groups;
}
@Entity
class Group{
@ManyToOne(fetch = FetchType.LAZY)
private Dashboard dashboard;
}
如果要使用连接表,则不应使用mappedBy
。
@Entity
class Dashboard {
@OneToMany(cascade = CascadeType.ALL)
private List<Group> groups;
}
@Entity
class Group{
}