首页 > 解决方案 > 使用索引参数检索本机查询 JPA 中的记录范围

问题描述

JPA 存储库中的查询应检索 2 个日期/时间戳之间的汽车注册列表。我尝试了 2 个实现,它检索记录,但不在 2 个时间戳设置的范围内。这是使用索引参数和between/或比较运算符检索记录的正确方法吗?

1.使用between

   public interface CarRepository extends JpaRepository<Car, String> {
    @Query(nativeQuery = true,
           value = "select * from car_records where carRegTs between ?1 and ?2")
   }
   List<Car> retrieveCars(Long startRegTs, Long endRegTs); 

2. 使用>=<=运算符

   public interface CarRepository extends JpaRepository<Car, String> {
    @Query(nativeQuery = true,
           value = "select * from car_records" where carRegTs >= ?1 and carRegTs <= ?2")
   }
   List<Car> retrieveCars(Long startRegTs, Long endRegTs); 

标签: javasqlspringjpaspring-data-jpa

解决方案


您可以使用 BETWEEN 尝试此查询

value = "select * from car_records" where carRegTs between 'first_date' and `'second_date')`

推荐阅读