gpt4 book ai didi

java - 如何将多个日期间隔搜索与 Spring Data JPA 的 CrudRepository 结合起来?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:22 27 4
gpt4 key购买 nike

spring-data提供了一种通过定义方法名来生成SQL搜索的方式。

以下工作正常:

@Entity
public class Book {
Date from, to;
}

//CrudRepository<Book>
findByFromDateBetween(Date departure, Date arrival);

但是为什么下面的方法不起作用呢?

findByFromDateBetweenAndToDateBetween(Date departure, Date arrival);

要连接两个日期搜索,我必须重复日期:

findByFromDateBetweenAndToDateBetween(Date departure, Date arrival, Date departure, Date arrival);

问题:是否可以重用参数?

最佳答案

Between 关键字自然地绑定(bind)了两个参数。因此在绑定(bind)了 from 子句之后,参数列表已经用完了,我们不知道要为第二个条件使用哪些参数。

手动定义的查询应该可以解决问题:

interface BookRepository extends Repository<Book, Integer> {

@Query("select b from Book b " +
"where b.from between ?1 and ?2 and b.to between ?1 and ?2")
List<Book> findByDatesBetween(Date departure, Date arrival);
}

关于java - 如何将多个日期间隔搜索与 Spring Data JPA 的 CrudRepository 结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870095/

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