当前位置: 代码迷 >> java >> OneToMany 错误的主键列
  详细解决方案

OneToMany 错误的主键列

热度:111   发布时间:2023-07-31 11:01:03.0

我在应用程序中新创建的表有问题。 我想在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<>();


最简单的方法是不使用连接表。 只需在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{


}