У меня есть два класса:
@Entity
@Table(name = "team")
@Getter
@Setter
@NoArgsConstructor
public class Team {
@Id
@GeneratedValue
private Long id;
private String name;
@Enumerated(EnumType.STRING)
private ProblemArea problemArea;
@JsonIgnore
@OneToMany(mappedBy = "team")
@Cascade(value = org.hibernate.annotations.CascadeType.PERSIST)
private List<TeamMember> teamMemberList;
@JsonIgnore
@OneToOne
@Cascade(value = org.hibernate.annotations.CascadeType.PERSIST)
private TeamLeader teamLeader;
}
@Entity
@Table(name = "team_member")
@Getter
@Setter
public class TeamMember extends InternalUser {
@OneToOne
@Cascade(value = org.hibernate.annotations.CascadeType.PERSIST)
protected Team team;
}
Проблема в том, что при попытке УДАЛИТЬ экземпляр Team я получаю сообщение об ошибке из-за внешнего ключа, на который есть ссылка в таблице TeamMember.Как УДАЛИТЬ Экземпляр команды правильно, не удаляя указанный TeamMember?Это метод удаления внутри TeamController:
public boolean deleteTeam(@NotNull Long id) {
if (!teamDao.existsById(id)) {
return false;
}
teamDao.deleteById(id);
return true;
}