【问题标题】:Spring JPA - How to remove object from database but not in relationSpring JPA - 如何从数据库中删除对象但不相关
【发布时间】:2021-04-20 19:24:27
【问题描述】:

您好,我正在使用 Spring Boot 和 JPA 关系。

我有两个实体,ProductUser,我想在它们之间建立关系,并保存所有购买的产品。

但是如果我从实体中删除产品,那么它将从新表(关系)中删除,如何补救?

也许从表中收集旧记录?

【问题讨论】:

  • 即使从父表中删除,您也希望将其保留在子表中。然后它将是关系中的孤儿,并且该产品 id 将指向任何内容
  • 那么我怎样才能保留所有用户的购物历史呢?
  • 在这种情况下您不能删除产品实体。您只需将其停用或存档即可。
  • 那么更好的是,不删除产品,是否创建新实体,其将保留交易信息
  • 您要实现的目标将破坏表关系的目的,从而破坏数据完整性(RDBMS 基础概念)。如果要保留孤立条目,为什么需要在表之间建立关系?我想删除这种关系会解决你的目的。

标签: java spring jpa


【解决方案1】:

在 jpa 中,当 jpa 删除产品时,必须从用户中删除该产品

您可以通过deleteById(Long productId)从 ProductRepository 中删除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多