проблема с удалением Eclipselink и добавлением элементов в коллекцию - PullRequest
0 голосов
/ 08 июля 2020

У меня есть объект Medico с коллекцией <MedicoMatricula>, проблема возникает, когда я пытаюсь удалить MedicoMatricula и добавить еще один (очень похожий), SQL выполняет 1-й INSERT, а не DELETE, поэтому срабатывает единственное ограничение. Все это делается путем слияния (Medico) с CASCADE.ALL коллекции после подтверждения пользователя / клиента, поэтому я не могу разделить процесс удаления 1-го элемента, как только пользователь это сделал (выполнить слияние), и сделать еще одно слияние с новым элементом.

Это способ изменить поведение Eclipselink? скажите ему, чтобы 1-й запускал удаление перед вставкой или обновлением ??

@Entity
@Table(uniqueConstraints = {
    @UniqueConstraint(name = "medicomatricula_medico_provincia", columnNames = {"medico_id", "provincia_id"})
    ,
    @UniqueConstraint(name = "medicomatricula_provincia_matricula_tipo", columnNames = {"numero", "provincia_id", "tipo"})
})
public class MedicoMatricula implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    @JoinColumn(nullable = false)
    @ManyToOne(optional = false)
    private Medicos medico;
    @JoinColumn(nullable = false)
    @ManyToOne(optional = false)
    private Provincia provincia;
    /**
     * Única por médico y provincia, sin importar las especialidades
     */
    @Column(nullable = false)
    private Integer numero;
    /**
     * M= Médico, O= Odontólogo, P= Psiquiatra, K= Kinesio, N= Nutricionist
     */
    @Column(nullable = false, length = 1)
    private String tipo;
...