当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring Data JPA的CrudRepository组合多个date-beater搜索?

蒋啸
2023-03-14

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

问题:有可能重用params吗?

共有1个答案

仉梓
2023-03-14

between关键字自然绑定了两个参数。因此,在绑定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);
}
 类似资料:
  • 在弹性搜索中,如果我有属性为Foo的文档,比如Bar和其他一系列属性。 我需要以这样的方式查询,我得到的结果在下面的方式 基本上,我需要doc\u count的所有可用组合。使用该结果,可以说,如果Foo=foo1,Bar=bar1,Baz=baz1,Qux=qux1,则有20个文档/记录 粗暴的方式是,使用聚合内部的聚合(在这种情况下为4次)。 应该有更简单的方法来做到这一点。 提前感谢

  • 问题内容: 我创建了这个功能: 该函数在2个索引中查找搜索词。Visual Studio向我显示以下消息: “已弃用。您可以在查询中指定_index以定位特定索引” 但是我该怎么办呢? 问题答案: 由于不建议使用indexs查询,因此它目前仍可以使用,但不推荐使用该警告是可能在将来的主要版本中将其删除。 您可以通过以下方式实现与索引查询相同的功能: 产生以下查询JSON

  • 我有以下代码: 现在我想再组合一个数组和中的它的值。这是foreach语句中的三个数组。谁能帮我把它加进去。比如我们如何在foreach语句中添加多个。 例如,我想要以下内容: 但是上面的代码给出了。我得到的错误是 分析错误:语法错误,在/homepages/4/d864452909/htdocs/public_html/app/index.php第58行中,意外的“=>”(T_DOUBLE_AR

  • 问题内容: 我为嵌套对象具有以下索引架构: 数据如下: 现在,如果我做一些简单的查询,例如找到“ isCurrentWorkplace”为true且title.id为259的工作场所,则它可以正常工作: 现在的问题是,我需要组合这些必须子句。例如,我需要找到一条记录,其“ isCurrentWorkplace”为true,“ title.id”为259 AND “ isCurrentWorkpla

  • 我想计算一天内每个产品的每个IP访问计数。 一个索引中有三个参数(nginx访问日志): 时间戳 客户IP product\u id 我知道date\u直方图可以参考https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.

  • 我的selenium代码通过等待网站标题更改来检查完成的子例程,该子例程运行良好。代码如下所示: 但是,这有时可能会失败,因为站点的登录页面在手动网站访问后发生变化。服务器会记住您离开的位置。这迫使我检查另一个条件(网站标题="notestring2)。 以下是我到目前为止所想到的(据我所知也有效): 这些条件中的任何一个始终为真。我不知道你是哪一个。 有没有什么方法可以在这些等待中包含一个“或”