【发布时间】:2020-02-04 01:52:52
【问题描述】:
我的User 班级看起来像这样:
@Data
@Entity
public class User {
@Id
Long userID;
@ManyToMany(mappedBy = "admins")
private List<ClassRoom> classRooms = new ArrayList<>();
}
我的ClassRoom 类是这样的:
@Data
@Entity
public class ClassRoom {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long classRoomID;
@ManyToMany
@JoinTable(name ="classroom_user",
joinColumns = @JoinColumn(name = "classroom_id"),
inverseJoinColumns = @JoinColumn(name = "user_id"))
private List<User> admins = new ArrayList<>();
}
在我的UserController 课堂上,我有:
@PostMapping("user/{id}/c")
User addClassRoom(@PathVariable Long id,@RequestBody ClassRoom newClassRoom)
{
logger.debug(repository.findById(id));
return repository.findById(id)
.map(user -> {
user.getClassRooms().add(newClassRoom);
user.setClassRooms(user.getClassRooms());
return repository.save(user);
})
.orElseGet(() -> {
return null;
});
}
我 POST 并清空 JSON ({}),我发现我的用户没有任何变化。 Classroom 或空的 Classroom 不会添加到 User 中。
这里有什么问题?我该如何解决这个问题?
【问题讨论】:
标签: spring spring-boot jpa spring-data-jpa many-to-many