Я новичок в Spring jpa и пытаюсь выполнить операцию удаления в базе данных spring jpa многих ко многим. В моей базе есть пользователь и наркотик. Я могу удалить пользователя и удалить также связанные с ним строки из таблицы user_drug. Я могу удалить лекарство, которое не имеет связи с таблицей user_drug, но я не могу удалить лекарство, которое также находится в таблице user_drug. Я посмотрел на этой странице, но решения оттуда не работают для меня .. Как удалить сущность с отношением ManyToMany в JPA (и соответствующие строки таблицы соединения)?
Вот мой код для сущности пользователя:
@ManyToMany(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(name = "user_drug",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "drug_id", referencedColumnName = "id"))
private Set<Drug> drugs = new HashSet<>();
Вот код для сущности Drug:
@ManyToMany(mappedBy = "drugs", fetch=FetchType.EAGER)
private Set<User> users = new HashSet<>();
А вот метод удаления из DrugServiceImpl:
public void delete(Drug drug)
{
drug.getUsers().clear();
drugRepository.delete(drug);
}
Я также напечатал размер drug.getUsers () после сброса, и он равен 0. Почему он не удаляет лекарство из базы данных?
Я пробовал разными способами. Может кто-нибудь отправить какую-нибудь помощь?