gpt4 book ai didi

hibernate - 默认情况下,如何对实体进行 "filter"查询(where 子句)?

转载 作者:行者123 更新时间:2023-12-02 02:18:57 27 4
gpt4 key购买 nike

我的游戏中有一个 hibernate 实体!由 mysql 数据库和使用 JPA 查询的项目。

我现在想要做的是向我的应用程序添加一个“存档”工具,就用户而言删除该实体。

但是仍有其他实体将引用它,因此我无法删除该实体,而且我希望能够从存档中恢复它。

但是,我不希望它默认出现在列表或搜索中,但当然在某些情况下仍然需要能够访问那里的数据,例如当用户检查引用它的项目时。

有许多查询引用实体,我可以为每个查询添加一个 WHERE 子句,但我也使用了一些内置的查询方法,例如 findAll()。

我认为如果我能以某种方式默认添加 where 子句会更清晰。

有没有办法做到这一点?

最佳答案

您在这里有两种解决方案:

  • 如果您使用的是 Hibernate,您可以使用 @Where(clause = "column to filer")在实体 bean 上。
    @Entity
    @Where(clause = "isActive='false'")
    public class Product {
    //...
    @Column
    private Boolean isActive;
    }
  • 或者,如果使用 EclipseLink JPA 实现,则使用 @AdditionalCriteria("column to filer")定义数据的参数化 View 。
    @Entity
    @AdditionalCriteria("isActive='false'")
    public class Product {
    //...
    @Column
    private Boolean isActive;
    }

  • 欲了解更多信息:
  • @AdditionalCriteria
  • @Where
  • 关于hibernate - 默认情况下,如何对实体进行 "filter"查询(where 子句)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207543/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com