1

我有以下@OneToOne 关系:

@Entity
public class CarUser {
    @OneToOne
    @JoinColumn(name = "use")
    private User user;
}

@Entity
public class User {
}

基本上,User 位于核心模型中,而 CarUser 位于扩展模型中。并且用户不应该对 CarUser 有任何了解(我无法在其上定义反比关系)。

问题是当我删除用户时,我是否也可以级联删除 CarUser?

4

1 回答 1

1

根据定义,如果您要声明“用户不应该对 CarUser 有任何了解”,您就无法让持久层为您级联。

不过,您不一定需要做出这样的声明——这可能不是正确的设计理解。同一数据库模式中的实体相互了解是合理的。

让我们这样说吧——即使(在制造/会计系统中)CostingModule 和 LedgerModule 位于不同的模块中,它们也绝对需要进行通信和交互。

您也可以使用数据库中的外键约束或触发器来执行此操作。

alter table CARUSER add constraint CARUSER_USER foreign key (ID) 
  references "USER" (ID) on delete cascade;
于 2013-05-13T01:39:51.693 回答