我具有以下@OneToOne关系:

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

@Entity
public class User {
}


基本上,User在核心模型中,而CarUser在扩展模型中。而且用户对CarUser一无所知(我无法在其上定义逆关系)。

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

最佳答案

根据定义,如果您要声明“用户对CarUser一无所知”,则无法让持久层为您层叠。

但是,您不必一定要声明-这可能不是对设计的正确理解。在同一数据库架构内的实体彼此了解是合理的。

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

您也可以改为使用数据库中的外键约束或触发器来实现。

alter table CARUSER add constraint CARUSER_USER foreign key (ID)
  references "USER" (ID) on delete cascade;

10-05 22:05