我有以下@OneToOne关系:
@Entity
public class CarUser {
@OneToOne
@JoinColumn(name = "use")
private User user;
}
@Entity
public class User {
}
基本上,用户属于核心模型,CarUser属于扩展模型。用户不应该对CarUser有任何了解(我无法在其上定义反向关系)。
问题是当我删除用户时,无论如何我还可以级联删除CarUser吗?
答案 0 :(得分:1)
根据定义,如果您想声明“用户不应该了解CarUser的任何信息”,则无法让持久层为您级联。
但是,您不一定需要做出这样的陈述 - 这可能不是一个正确的设计理解。对于在同一数据库模式中的实体,彼此了解是合理的。
让我们这样说吧 - 即使(在制造/会计系统中)CostingModule和LedgerModule在不同的模块中,它们绝对也需要进行通信和交互。
您也可以使用数据库中的外键约束,或使用触发器来执行此操作。
alter table CARUSER add constraint CARUSER_USER foreign key (ID)
references "USER" (ID) on delete cascade;