【问题标题】:Jpa + Spring Boot Entity filterJpa + Spring Boot 实体过滤器
【发布时间】:2024-04-23 13:25:01
【问题描述】:

我有一个 JPA 实体,它有一个“已发布”的 fleg。 例如让我们将其描述为 TestEntity:

  • 长测试ID
  • 字符串测试描述
  • 布尔值已发布

我想要的是每次访问实体时,即使它是另一个实体的相关实体,也可以使用 publish=True 访问。问题是我不能使用像@Filter(condition="published = true") 这样的东西,因为在某些情况下,我确实想在没有该过滤器的情况下访问同一个实体,以某种方式明确它。 有什么简单的方法吗?

更新: 我无法在存储库中设置它,因为我还需要在来自另一个实体的 JOIN 中设置条件,该实体不使用 TestEntity 存储库。

【问题讨论】:

    标签: java spring spring-boot jpa entity


    【解决方案1】:

    您可以在 JPARepository 中声明一个方法,如下所示:

     True    findByActiveTrue()  … where x.active = true
     False   findByActiveFalse() … where x.active = false
    

    可能在查询方法中使用关键字:

    https://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/#jpa.query-methods.query-creation

    【讨论】:

    • 不幸的是,这对我来说不是一个好方法,我需要它也可以在另一个实体的 JOIN 中工作。
    最近更新 更多