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 中设置的任何唯一约束都将导致违反约束异常。
我有如下三个 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 中设置的任何唯一约束都将导致违反约束异常。