Hibernate - 插入打破唯一约束

Hibernate - insert breaking unique constraint

我有如下三个 table 多对一映射(来自 的帮助)

电子邮件、通知和Email_notificationsenter image description here

下面是保存代码

    EmailData e1 = new EmailData();
    e1.setEmail(email);

    NotificationData n1 = new NotificationData();
    n1.setMessage(message);

    EmailNotificationData en1 = new EmailNotificationData("N");
    en1.setEmail(e1);
    en1.setNotification(n1);
    session.save(en1);

所以当我添加重复的电子邮件时,它假设更新 email_notifications table 中的通知 -> 同一电子邮件的新通知,但由于违反唯一约束,我收到插入错误

我试过 "saveorupdate " 也没用

关于如何解决这个问题的任何建议

重复的 EmailNotificationData 对象的 ID 必须与之前的重复 EmailNotificationData 对象相同。否则 hibernate 不知道重复的对象是否已经被持久化。如果为 EmailNotificationData obj 设置了 id,hibernate 将知道 obj 已经持久化并且 hibernate 将执行并更新 obj。如果 id 不存在,hibernate 将尝试保存并且在 db 中设置的任何唯一约束都将导致违反约束异常。