Скажем, у меня есть следующая структура модели:
@Entity
@Table(....)
public class AnnotationGroup{
    ...
    private List<AnnotationOption> options;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
    @JoinColumn(name = "annotation_group_id", nullable = false)
    public List<AnnotationOption> getOptions() {
        return options;
    }
}
@Entity
@Table(...)
public class AnnotationOption {
    private Long id;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Override
    public Long getId() {
        return id;
    }
}
В данный момент у меня есть group1 с AnnotationOption opt1 opt2 и opt3
Затем я хочу заменить все опции только одним вариантом opt1
Кроме того, у меня есть ограничение в базе данных:
    CONSTRAINT "UQ_ANNOTATION_OPTION_name_annotation_group_id" UNIQUE (annotation_option_name, annotation_group_id)
И этот огонь срабатывает:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "UQ_ANNOTATION_OPTION_name_annotation_group_id"
  Detail: Key (name, annotation_group_id)=(opt1, 3) already exists.
Фактически isuue, что hibernate удаляет сирот после обновления.
Можете ли вы предложить что-то решить проблему?

