【问题标题】:Retrieve range of records in native query JPA with Indexed Parameters使用索引参数检索本机查询 JPA 中的记录范围
【发布时间】:2021-05-12 15:17:55
【问题描述】:

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。使用&gt;=&lt;= 运算符

   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); 

【问题讨论】:

    标签: java sql spring jpa spring-data-jpa


    【解决方案1】:

    您可以使用 BETWEEN 尝试此查询

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

    【讨论】:

    • 这行不通。我必须在本机查询中使用索引参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多