【问题标题】:Hibernate delete parent休眠删除父级
【发布时间】:2023-04-06 14:19:01
【问题描述】:

当我想在 Hibernate 中删除父级时,如果有子级,是否有引发异常的机制?

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "categoryId")
private Category category;

@OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
private List<Product> productList = new ArrayList<>();

如果产品属于该类别,则不删除类别。

【问题讨论】:

    标签: hibernate jpa hibernate-onetomany bidirectional-relation


    【解决方案1】:

    为什么 Hibernate 会在删除包含产品的类别时抛出异常?您通过定义 cascade = CascadeType.ALL 来要求 Hibernate 执行此操作。

    如果您不希望某个类别在包含某些产品时被删除,您需要自己确认:

    if (category.containsProducts()) {
        throw new Exception();
    }
    categoryRepository.delete(category);
    

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 2011-04-17
      相关资源
      最近更新 更多