Java JPA one many在映射后给出空值
有人能指出我做错了什么吗 我有三个类:Dashboard、DashboardUser和User 仪表板工作正常,代码如下:Java JPA one many在映射后给出空值,java,jakarta-ee,jpa,mapping,one-to-many,Java,Jakarta Ee,Jpa,Mapping,One To Many,有人能指出我做错了什么吗 我有三个类:Dashboard、DashboardUser和User 仪表板工作正常,代码如下: @OneToMany(cascade= CascadeType.ALL, orphanRemoval = true, mappedBy="dashboard") private List<DashboardUser> dashboardUsers = new ArrayList<>(); 问题在于User.java: @OneToMany
@OneToMany(cascade= CascadeType.ALL, orphanRemoval = true, mappedBy="dashboard")
private List<DashboardUser> dashboardUsers = new ArrayList<>();
问题在于User.java:
@OneToMany(cascade= CascadeType.ALL, orphanRemoval = true, mappedBy="user")
private List<DashboardUser> dashboardUsers;
@OneToMany(cascade=CascadeType.ALL,orphaneremovation=true,mappedBy=“user”)
私有列表仪表板用户;
它看起来是一样的,但只有Dashboard类能够正常工作。
执行代码后,我的仪表板的属性中有一个dashboardUser,但该用户的dashboardUser值为空
数据库中的表有两个字段:IDUser和IDDashboard(我使用正确的userID和dashboardID)。有人看到我的错误了吗?给
用户添加@JoinColumn
注释
@OneToMany(cascade= CascadeType.ALL, orphanRemoval = true, mappedBy="user")
@JoinColumn(name="dashBoardUserId") //Replace with actual column name
private List<DashboardUser> dashboardUsers;
Dashboard.java
public class User{
@ManyToMany(cascade={CascadeType.ALL}, targetEntity=Dashboard.class)
@JoinTable(name="DASHBOARD_USER",
joinColumns={@JoinColumn(name="IDUser", referencedColumnName="IDUser")},
inverseJoinColumns={@JoinColumn(name="IDDashboard",
referencedColumnName="IDDashboard")})
public List<Dashboard> dashboards = new ArrayList<Dashboard>();
//Other fields/Getters/Setters
}
@Entity
public class Dashboard{
@ManyToMany(mappedBy="dashboards")
private List<Users> users;
//Other fields/Getters/Setters
}
@实体
公共类仪表板{
@许多(mappedBy=“仪表盘”)
私人名单用户;
//其他字段/getter/setter
}
感谢您的反应。主键是IDUSer和IDDashboard的组合。目前,没有单独的PK id字段。有没有一种方法可以将这样一个复合ID与您提供的joincolumn一起使用?包括完整的映射、生成的SQL以及您得到的错误。如果要序列化数据,任何延迟字段在序列化时都将为null。
@Entity
public class Dashboard{
@ManyToMany(mappedBy="dashboards")
private List<Users> users;
//Other fields/Getters/Setters
}