У меня проблемы с каскадными типами, у меня 3 таблицы. 2, созданный мной, и таблица соединений создается через спящий режим. Вот мои таблицы:
активность
встреча
assign_activity
Моя проблема в том, что когда я пытаюсь удалить встречу или действие, это не происходит. разрешите. Столбец в объединенной таблице assign_activity также присутствует. Я знаю, что мне не следовало использовать Remove во многих отношениях, поэтому я не знаю, что делать, чтобы исправить проблему.
Мои два класса:
// activity class
public class Activity
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
protected Long id;
@NotNull
@Column(unique = true)
private String name;
@JsonIgnore
@ManyToMany(mappedBy = "activities",
cascade = { CascadeType.PERSIST, CascadeType.MERGE,
CascadeType.REFRESH, CascadeType.DETACH})
private Set<Appointment> appointments;
}
// appointment class
public class Appointment
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
protected Long id;
@NotNull
private LocalDateTime startDate;
@JsonIgnore @ManyToMany(fetch = FetchType.EAGER,
cascade = { CascadeType.PERSIST,CascadeType.MERGE, CascadeType.REFRESH,CascadeType.DETACH})
@JoinTable(name = "appointment_activity",
joinColumns = {@JoinColumn(name = "appointment_id")},
inverseJoinColumns = {@JoinColumn(name = "activity_id")} )
private Set<Activity> activities;
}
Я знаю, что должен используйте что-то вроде этого: (получил его из другого вопроса о переполнении стека)
entityManager.remove(group)
for (User user : group.users) {
user.groups.remove(group);
}
...
// then merge() and flush()
Но я не уверен, куда его поставить или как с ним работать, может кто-нибудь объяснить?