我能在表达式末尾不给出排序参数吗?因为我需要在over()函数中使用sort参数。
例子:
@Query(value = "...?2...over(?4)...?1...?3")
myMethod(int a,int b,int c,Sort sort);
或sort inside over的表达式:,-#sort\n,#{#sort}。。
我仍然得到:
JAVAlang.IllegalArgumentException:方法公共抽象java的查询验证失败。整型。。。方法的名称。。(int,int,int,org.springframework.data.domain.Sort)!
Sort
类型的参数通过Spring Data JPA进行特殊处理。
即使不是这样,您试图实现的目标也无法通过简单的绑定参数实现,因为SQL允许在这些地方使用绑定参数。
根据你想要实现的目标,你可以做以下事情:
@Query("select .... over(... order by CASE ?1 WHEN "first THEN first
WHEN 'last' THEN last
END")
public Something method(String columnNameForSorting)
假设您有列first
和last
要在它们之间切换以进行排序。
有关CASE表达式的更多信息,标准SQL替代Oracle DECODE
我目前正在使用带有Spring Data commons 1.9.1和Spring JPA 1.7.1的JpaSort。我需要使用QueryDSL,因为JPA不允许为空值定义排序。 这是我的存储库 我在我的控制器中这样做: 这就是我对JPA的看法: 这是我为QueryDSL更改的内容: 然而,似乎什么都没有得到整理。我已经启用了调试日志记录,我看到了这一点: 如果我将其更改为: 然后,按我的“数据
我使用的是Spring数据JpaRepository,我发现它非常容易使用。我实际上需要所有这些功能——分页、排序、过滤。不幸的是,有一件令人讨厌的事情似乎迫使我退回到普通JPA的使用上来。 我需要按关联集合的大小订购。例如,我有: 我必须按bes排序。size() 是否有办法以某种方式自定义排序,仍然利用分页、过滤和其他Spring Data的强大功能?
我试图指定一个用注释的存储库方法和一个带有对象的Pagable: 编辑1:此存储库正在扩展分页和排序存储库。 对象使用以下方法签名指定: 但生成的输出查询没有排序选项,例如: ...在我期待的时候: 这里有人遇到过这样的问题吗?我使用的是Spring Boot 1.5。x。
看起来像个虫子。排序对于简单的搜索非常有效,但对于滚动则不起作用。我尝试这样做: 之后: 运行时,应用程序显示: 搜索: |调试o.s.d.elasticsearch。果心查询:937{“from”:0,“size”:5,“QUERY”:{“constant\u score”:{“filter”:{…跳过…},“boost”:1.0}},“version”:true,“\u source”:{“i
问题内容: 我正在尝试在Spring数据存储库中定义一个方法,以按日期排序获取表上的最后一条记录。这是我的实体: 这是我的存储库: 如果我尝试使用启动项目,则会收到下一个错误: 原因:org.springframework.data.mapping.PropertyReferenceException:未找到类型为Date的属性desc!遍历的路径:News.publicationDate。 如果
我是相当新的Spring和MongoDB,并有一个问题,从我的MongoDB拉数据。我试图获得相当大的数据量,并收到以下异常: 执行器错误:操作失败:排序操作使用超过最大33554432字节的RAM。添加索引,或指定一个较小的限制。;嵌套异常是com.mongodb.MongoExc0019: Execator错误:操作失败:排序操作使用超过内存的最大33554432字节。添加索引,或指定较小的限