休眠未保存联接列id



我设置了一个ManyToOne关系。每个团队可以有多个用户。我在Team.java中使用CascadeType.PERSIST,因为我不希望在团队被删除时删除用户帐户,反之亦然。级联类型是否适合我的用例?

User.java表team_id中的联接列在保存一个团队并在控制器中向该团队添加一个用户后保持为null。

Team.java

@OneToMany(mappedBy = "memberAtTeam", cascade = CascadeType.PERSIST)
private List<User> usersInTeam;

User.java

@ManyToOne
@JoinColumn(name = "team_id")
private Team memberAtTeam;

TeamController.java

Team teamInvitedTo = invite.getTeamInvitedTo(); //Returns a Team object. Works.
teamInvitedTo.getUsersInTeam().add(invitedUser); //invitedUser is a User.java object
teamRepository.save(teamInvitedTo); //Doesn't set team_id, stays null in DB
teamInviteRepository.delete(invite); //Deletes used invite, this works.

invitedUsermemberAtTeam字段在添加到teamInvitedTousersInTeam集合时需要指向usersInTeam。否则,保存时usersInTeam的外键列值不会指向teamInvitedTo,而是保持为null。

Team teamInvitedTo = invite.getTeamInvitedTo(); //Returns a Team object. Works.
invitedUser.setMemberAtTeam(teamInvitedTo); 
teamInvitedTo.getUsersInTeam().add(invitedUser); //invitedUser is a User.java object
teamRepository.save(teamInvitedTo); //Doesn't set team_id, stays null in DB
teamInviteRepository.delete(invite); //Deletes used invite, this works.

最新更新