我有以下@OneToOne关系:
@Entity
public class CarUser {
@OneToOne
@JoinColumn(name = "use")
private User user;
}
@Entity
public class User {
}
基本上,User 处于核心模型中,CarUser 处于扩展模型中。并且 User 不应该知道有关 CarUser 的任何信息(我无法定义它的逆关系)。
问题是当我删除用户时,我是否也可以级联删除CarUser?
最佳答案
根据定义,如果您想声明“用户不应该了解有关 CarUser 的任何信息”,您就无法让持久层为您级联。
不过,您不一定需要做出这样的声明 - 这可能不是正确的设计理解。同一数据库架构内的实体相互了解是合理的。
让我们这样说 - 尽管(在制造/会计系统中)CostingModule 和 LedgerModule 位于不同的模块中,但它们绝对应该能够进行通信和交互。
您还可以使用数据库中的外键约束或触发器来完成此操作。
alter table CARUSER add constraint CARUSER_USER foreign key (ID)
references "USER" (ID) on delete cascade;
关于java - JPA @OneToOne关系删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16511608/