Использую Hibernate 4.1, Spring Data JPA 1.3.1. Сущности описаны так:
class User {
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "event_user")
private Set<Event> events;
}
class Event {
@ManyToMany(cascade = CascadeType.ALL, mappedBy = "events")
private Set<User> users;
}
Задача: при удалении User удалить все event где нет других User.
Чего только не пробовал, но никак не удаляются Event. Результат один, User удаляется из таблицы event_user связь тоже удаляется.
UserRepository userRepository; // extends JpaRepository<User, Long>
EventRepository eventRepository; // extends JpaRepository<Event, Long>
...
for (Event event : user.getEvents()) {
event.getUsers().remove(user);
if (event.getUsers().isEmpty()) {
eventRepository.delete(event);
} else {
eventRepository.save(event);
}
}
userRepository.delete(user);
Подскажите что я упускаю.