1

嗨,任何人都可以帮助我解决以下问题

我有一个父对象说ParentObj,它有两个子对象ChildObj1ChildObj2如下所示

    @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;
}

在数据库级别,我将电子邮件设置为唯一约束,如下所示

 UNIQUE KEY `uk_email` (`email`)

我从前端 jsp收到电子邮件字段问题是当 childObj1 电子邮件和 childObj2 电子邮件相同时,我收到唯一键约束违规异常,因为 db 级别存在唯一键约束,但如果两封电子邮件不同,上述模式工作正常。

有没有办法在不删除对象级别的级联类型和不删除数据库级别的唯一约束的情况下处理上述问题,例如仅在这种情况下禁用注释而不删除注释不确定我们是否可以这样做

4

0 回答 0