嗨,任何人都可以帮我解决以下问题
我有一个父对象说ParentObj
,它有两个子对象,如ChildObj1
和ChildObj2
,如下所示
@Entity
@Table(name="parent")
public class ParentObj {
@OneToOne(fetch = FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name="child1_id", nullable=false)
private Child childObj1;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name="child2_id")
private Child childObj2;
}
我使用 cascade = CascadeType.ALL ,因为当我保存父对象时我想保存子对象也工作正常(我不想显式保存子进程然后将它们设置为父对象然后拯救父母)
和Child
对象如下所示
@Entity
@Table(name="child")
public class Child extends Persistent{
@Column(name="email")
private String email;
}
并且在db级别我将电子邮件设置为唯一约束,如下所示
UNIQUE KEY `uk_email` (`email`)
我从前端jsp问题收到电子邮件字段是当childObj1 email和childObj2电子邮件相同时我得到唯一键约束违规异常,因为db级别中有唯一键约束但上面的模式如果两封电子邮件不同,那就正常工作。
有没有办法处理上述问题而不删除对象级别中的级联类型并且不删除db级别中的唯一约束,例如仅在这种情况下禁用注释而不删除注释,不确定我们是否可以执行此操作