Нажмите, чтобы раскрыть...
Выложи остатки, у тебя пока непонятно как Entity сформированы и что ты вообще используешь.
Твою задачу можно решить следующими путями
1. Сделать сущность Group, в ней описать поля Group, что то в духе
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Slf4j
@Getter
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString(doNotUseGetters = true)
@Entity
@Table(name = "GROUP")
public class Group {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@EqualsAndHashCode.Exclude
private Long id;
@Column(name = "TIME_STAMP", nullable = false)
@EqualsAndHashCode.Exclude
private Date timeStamp;
@Column(name = "NAME", nullable = false)
private String name;
@OneToMany(cascade = {CascadeType.MERGE,
CascadeType.PERSIST}, fetch = FetchType.LAZY, mappedBy = "group", orphanRemoval = true)
@Fetch(value = FetchMode.SUBSELECT)
@Builder.Default
@EqualsAndHashCode.Exclude
@ToString.Exclude
private final Set persons = new HashSet<>();
}
2. Сделать Person
@Slf4j
@Getter
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString(doNotUseGetters = true)
@Entity
@Table(name = "PERSON")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@EqualsAndHashCode.Exclude
private Long id;
@Column(name = "TIME_STAMP", nullable = false)
@EqualsAndHashCode.Exclude
private Date timeStamp;
@Column(name = "NAME", nullable = false)
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "GROUP_ID", nullable = false)
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Group group;
}
3. Обрати внимание на связь @OneToMany и @ManyToOne - это одна и та же связь, которая говориТ, что у одной группы может быть много персон, а у одной персоны при этом может быть только одна группа-родитель
4. Теперь тебе осталось сделать репоз и переопределить метод удаления всех персон, у которых родитель - вот такая то группа
import Group;
import Person;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface PersonRepository extends CrudRepository {
void deleteAllByGroup(Group g);
}
5. Найди jpa объект группы (с помощью чего хочешь) и вызови personRepository.deleteAllByGroup(g)
6. Вы великолепны.