Мне кажется, что такой простой сценарий, но я не могу найти решение онлайн или в печати.У меня есть несколько объектов, таких как (обрезано):
@Entity
public class Group extends BaseObject implements Identifiable<Long> {
private Long id;
private String name;
private Set<HiringManager> managers = new HashSet<HiringManager>();
private List<JobOpening> jobs;
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(
name="group_hiringManager",
joinColumns=@JoinColumn(name="group_id"),
inverseJoinColumns=@JoinColumn(name="hiringManager_id")
)
public Set<HiringManager> getManagers() {
return managers;
}
@OneToMany(mappedBy="group", fetch=FetchType.EAGER)
public List<JobOpening> getJobs() {
return jobs;
}
}
@Entity
public class JobOpening extends BaseObject implements Identifiable<Long> {
private Long id;
private String name;
private Group group;
@ManyToOne
@JoinColumn(name="group_id", updatable=false, nullable=true)
public Group getGroup() {
return group;
}
}
@Entity
public class HiringManager extends User {
@ManyToMany(mappedBy="managers", fetch=FetchType.EAGER)
public Set<Group> getGroups() {
return groups;
}
}
Скажем, я хочу удалить объект группы.Теперь есть зависимости от него в таблице JobOpening и в таблице group_hiringManager, которые вызывают сбой функции удаления.Я не хочу каскадно удалять, потому что у менеджеров есть другие группы, и вакансии могут быть без группы.Я попытался переопределить функцию remove () моего GroupManager для удаления зависимостей, но кажется, что независимо от того, что я делаю, они сохраняются, и удаление не удается!
Как правильно удалить этот объект?