【问题标题】:Spring Data JPA - how to filter returned data based on a fields values?Spring Data JPA - 如何根据字段值过滤返回的数据?
【发布时间】:2021-12-03 00:32:53
【问题描述】:

我试图弄清楚如何过滤 Spring JPA 中返回给我的数据。

我知道使用 Spring JDBC,我可以完全控制,我基本上可以编写如下查询:

SELECT * FROM CAR 
WHERE ACCIDENT_DATE IS NULL 
  OR BUY_DATE >= CURRENT_DATE 
ORDER BY CAR_NUMBER

但是,使用 Spring JPA,我们不编写查询,而是编写实体,例如

@Entity
@Table(name = "CAR", schema = "MY_SCHEMA")
public class Car {
   @Id
   public Long carNumber;
   ...
}

根据天气过滤返回哪些汽车的方法是什么

  • ACCIDENT_DATE 为 NULL 并且
  • BUY_DATE 大于 CURRENT_DATE

,在 Spring JPA 中按 CAR_NUMBER 排序?

【问题讨论】:

  • 你错了,在(Spring)JPA 中你确实使用了查询。看看这里开始:spring-data-jpa-query
  • 我对@9​​87654325@ 有疑问,但我会在另一个问题中发布。您介意发表您的评论作为答案,以便我接受。谢谢
  • @DirkDeyne 我用我的问题创建了新帖子@QueryJPQL:stackoverflow.com/questions/69575273/…

标签: spring-boot spring-data-jpa


【解决方案1】:

在@DirkDayne 的帮助下,想出了如何做到这一点。谢谢德克

@Query("select c from CarEntity c where c.accidentDate is null or c.buyDate >= CURRENT_DATE")
List<CarEntity> getAllAvailableCars(Sort sort);

,然后在服务中调用它为:

List<CarEntity> cars= (List<CarEntity>) carRepository.getAllAvailableCars(Sort.by("carNumber"));

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2019-10-12
    • 1970-01-01
    • 2014-07-01
    • 2018-07-23
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多