У меня есть следующая строка в моем классе "User":
@ManyToMany(mappedBy = "members")
private List<Community> communities = new ArrayList<>();
, и у меня есть следующая строка в классе "Community":
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable
private List<User> members;
Я пытаюсьсделайте так, чтобы пользователь мог «создать» сообщество, а затем сделать так, чтобы этот пользователь появлялся в качестве члена указанного нового сообщества.
Вот код, в котором я создаю сообщество ...
public ResponseEntity<?> newCommunity(@Valid @RequestBody NewCommunityRequestPayload newCommunityrequest) {
// Get current user.
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
// New list of users here, since it is a new community.
List<User> members = new ArrayList<>();
User currentUser;
if (principal instanceof User){
currentUser = ((User)principal);
// Add this user to the member list.
members.add(currentUser);
// create a new Community object.
Community newCommunity = new Community();
// Set the name, and set the member list.
newCommunity.setCommunityName(newCommunityRequest.getCommunityName());
newCommunity.setMembers(members);
Community result = communityRepository.save(newCommunity);
return new ResponseEntity(new ApiResponse(true, "Created new community."),
HttpStatus.CREATED);
}
return new ResponseEntity(new ApiResponse(false, "Invalid user object"),
HttpStatus.BAD_REQUEST);
}
Как уже упоминалось, я пытаюсь сделать так, чтобы пользователь мог "создать" сообщество, а затем сделать так, чтобы этот пользователь появлялся в качестве члена указанного нового сообщества ... Когда я сохраняю сообщество выше, оно сохраняетсяв БД, и Hibernate генерирует таблицу для отношений, но там нет строки для этого.Как мне это исправить?