java - JPA @OneToOne关系删除

标签 java hibernate jpa

我有以下@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/

相关文章:

作为枚举的 java 属性文件

java - Jackson - hibernate 实体序列化

jpa - 如何在JPA实体中添加列并仍然保留数据?

带有 CRUD 存储库的 MySql ANY_VALUE() 方法

java - SetTwo 类路径 用于执行 Java 程序

java - VBScript:正则表达式匹配不正确的注册表值时出错

JavaFX 动态交换元素

java - JPA 持久类从不同的 JAR 扩展另一个类

java - 如何使用 jpa 和 hibernate 将 native 查询映射到 POJO 类

java - JPA JoinColumn 注解