@ManyToMany отношения в весенней загрузке? - PullRequest
1 голос
/ 19 марта 2019

У меня есть следующая строка в моем классе "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 генерирует таблицу для отношений, но там нет строки для этого.Как мне это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...