Как я могу сохранить связанный объект в базе данных, используя двойное отношение «многие ко многим»? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть две сущности:

User
Work

они имеют отношения многие ко многим с каждым.

  @ManyToMany(
      fetch = FetchType.LAZY,
      cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
  @JoinTable(
      name = "user_work",
      joinColumns = @JoinColumn(name = "work_id"),
      inverseJoinColumns = @JoinColumn(name = "user_id"))
  private List<User> workUsers;

, когда я добавляю новую работу с использованием JPA:

List<UserDto> users = new ArrayList<>();
users.add(new User(something something));

WorkDto work1 = new WorkDto(1, users));

workRepository.save(workMapper.fromDto(work1));

проблема: когда я сохраняю свою рабочую сущность в базе данных, она не сохраняет пользователя, поэтому, когда я ее извлекаю, работа говорит, что у нее нет пользователей.

Как Могу ли я вставить работу в базу данных и добавить в нее пользователей? У меня есть взаимная таблица с work_id и user_id, конечно

1 Ответ

0 голосов
/ 16 апреля 2020

Вы выполняете это в транзакции с @Transactional? Вы @Override the equals method?

Требуется больше деталей, например, отношения в User классе

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