作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
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/
我是一名优秀的程序员,十分优秀!