使用 Spring Data 进行不区分大小写的排序

2024-04-26

如何使用 Spring-data Pageable 进行不区分大小写的排序?

我的存储库中有这个方法

public interface ItemRepository extends QueryDslPredicateExecutor<Item>{
    @Query("SELECT o FROM Item o WHERE o.status = ?1")
    Page<Item> findByStatus(Item.Status status, Pageable pageable);
}

我希望能够通过以下方式调用它:

itemRepository.findByStatus(Status.completed, new PageRequest(0, 10, Direction.ASC, "lower(name)")

请注意lower属性字符串中的函数。这不起作用,因为 Spring-data 期望那里有一个属性。这将被翻译成这样:

SELECT o FROM Item o WHERE o.status = ?1 ORDER BY o.lower(name)

这当然行不通,因为对象上没有“较低”属性。

有办法让这项工作发挥作用吗?


Sort.Order.ignoreCase()大约 8 个月前被引入 spring-data-jpa,请看这里:

https://jira.springsource.org/browse/DATAJPA-296 https://jira.springsource.org/browse/DATAJPA-296

https://github.com/kraymondksc/spring-data-jpa/commit/c3adce0bd36799d3754a5f4c61aee64982abd7e0 https://github.com/kraymondksc/spring-data-jpa/commit/c3adce0bd36799d3754a5f4c61aee64982abd7e0

一旦你有了合适的 spring-data-jpa 版本(我想从 1.4 M1 开始,我有 1.4.1),你可以写这样的东西:

Sort.Order order = new Sort.Order(Sort.Direction.ASC, "name").ignoreCase();
itemRepository.findByStatus(Status.completed, new PageRequest(0, 10, new Sort(order));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spring Data 进行不区分大小写的排序 的相关文章

随机推荐

  • 当 android View 在应用程序中可见时是否会触发任何事件?

    我的应用程序包含多个视图 可滚动 其中之一是 CustomView 扩展视图 当此视图进入可见区域时是否会触发任何 android 事件 我在时间范围内使用后台线程的方法onAttachedToWindow to onDetachedToW
  • 如何在Python中从声音中获取Pi-Phase以获得相消干涉

    第一 我不知道该把这个话题放在哪里 因为它是一个编程和声音问题 如果有错误的地方请评论 但这是我的问题 如何将声音加载到 Python 中并创建它的 反向声音 因此 当我播放原始文件和 pi 偏移 文件时 它们会产生破坏性干扰并相互抵消 因
  • Erlang 如何并发处理访问邮箱

    关于如何使用erlang邮箱的信息有很多 但很少找到一篇论文或文档描述erlang如何在VM内部同时实际访问邮箱 据我了解 Erlang VM 必须执行锁定或 CAS 操作以确保消息完整性 erlang幕后有没有什么精巧的方法 我假设您所说
  • Linux C 如何打开目录并获取文件描述符

    include
  • 南迁:“数据库后端不接受0作为AutoField的值”(mysql)

    我是 django 的新手 并试图将外键返回给受让人和记者的用户 但是当我尝试对 South 应用更改时 我收到错误 ValueError The database backend does not accept 0 as a value
  • 如何限制 Glassfish v3 上 MDB 池的大小

    我的消息驱动 Bean 执行高度密集的操作 因此我想限制它的池大小 否则我的服务器会过载 我已经尝试过这个 代码 但它不起作用 它的池仍然是32 根据经验测试 我不时重新启动服务器 因此没有池实例 MessageDriven mappedN
  • 查找通过付费渠道的消息数量

    按照这个page https azure microsoft com en gb pricing details bot service 网络聊天和直线电话被视为优质渠道 我想知道以下事情 在哪里可以找到通过付费渠道传达的付费消息数量 我知
  • React Bootstrap 没有设计我的 React 组件的样式

    昨天刚开始使用 React 因此设置了一个演示应用程序 环境是 打字稿 Webpack 反应和反应 DOM 我正在尝试设置 Bootstrap 样式 我按照本教程进行操作 但对其进行了修改以适应 Typescript https mediu
  • 用 SED 或 PERL 单行匹配并替换多个换行符

    我有一个输入 C 文件 myfile c 如下所示 void func foo void func bar supercrazytag 我想使用 shell 命令插入新的函数原型 这样输出就变成 void func foo void fun
  • Axios 和 VueJS,函数(响应)未设置列表

    我有一个请求获取一些数据并将其添加到变量中 当我使用时 then function response this persons response data 它不分配response data to this persons但是当我执行以下操
  • 如何从 VB.NET 中的存储过程获取返回值

    我在 SQL Server 中有一个存储过程用于生成事务号 任何人都可以帮助我如何从 VB NET 调用存储过程以及如何获取从过程返回到前端的值 问候 乔治 我想你想要这样的东西 Public Sub Foo Using sql As Ne
  • 为什么从 Dropzone.js 发送时 IFormFile 集合为空?

    我正在尝试使用Dropzone js http www dropzonejs com 将 IFormFile 图像 集合发送到以下 ASP NET Core 2 1 Api 控制器操作 HttpPost action public asyn
  • 如何使用 word2vec 找到与向量最接近的单词

    我刚刚开始使用 Word2vec 我想知道如何找到最接近向量的单词 我有这个向量 它是一组向量的平均向量 array 0 00449447 0 00310097 0 02421786 dtype float32 有没有一种直接的方法可以在我
  • 如何处理 ember.js 组件中的自定义事件?

    我是 Ember js 的新手 在理解其原理时遇到了一些问题 我知道行动向上 数据向下但在现实生活中 假设我有Fotorama http fotorama io 在 my gallery 组件中初始化 我不知道这是否可以 但我是在didIn
  • EditText请求焦点

    我正在设计一个登录页面 UserName Password LoginButton 当活动开始时 我希望焦点转到 用户名 文本框并显示键盘 我正在使用以下代码 boolean checkFocus user requestFocus Log
  • 从数据框中删除所有非唯一行

    抱歉 这是我的第二篇文章 如果有什么不明白的地方请告诉我 我正在尝试删除所有有重复项的行 我已经尝试过keep False参数为drop duplicates 它只是没有做正确的事情 假设我的数据框看起来像这样 ORDER ID ITEM
  • 将带有 UIElement 的 FlowDocument 导出为 rtf

    我正在尝试导出一个FlowDocument其中包含一个 rtf 网格 我使用了以下代码 using FileStream fs new FileStream C demo rtf FileMode OpenOrCreate FileAcce
  • 我应该在 Uber 应用程序中放置什么重定向 URL?

    我正在阅读 Uber 的 sdk api 文档 但我是菜鸟 我不知道redirectURL 应该是什么 这是 Uber 提供的给定网址吗 因为我找不到它 或者是由应用程序开发人员部署自己的服务器 本地计算机定制的网页的 URL 如果是的话我
  • json_encode 可以触发 catch 块吗? [复制]

    这个问题在这里已经有答案了 这可能是一个非常简单的问题 但我找不到任何相关信息 我使用的系统聚合了来自不同来源的大量数据 然后将这些数据存储在数据库中 在大多数情况下 系统工作正常 但有时我们会遇到一个问题 即数据可能具有我们的系统不喜欢的
  • 使用 Spring Data 进行不区分大小写的排序

    如何使用 Spring data Pageable 进行不区分大小写的排序 我的存储库中有这个方法 public interface ItemRepository extends QueryDslPredicateExecutor