spring-boot - Spring 和 Kotlin 查询
问题描述
我怎样才能实现这个查询
select *
from table t
where name like '%Ami%'
order by (name = 'Ami') desc, length(col);
(只是排序部分)
使用springframework排序..
我尝试的是
Sort.by(Sort.Direction.DESC, "name") // But I need to sort by name = 'Ami'
Sort.by(Sort.Direction.DESC, "name" = 'Ami'") // throws an error
JpaSort.unsafe(Sort.Direction.DESC, "name" = 'Ami'") // throws an error
解决方案
看起来文档中有一个与您的问题几乎相同的示例:
https://docs.spring.io/spring-data/jpa/docs/2.4.5/reference/html/#jpa.query-methods.sorting
但是,将 Sort 与 @Query 一起使用可以让您潜入包含 ORDER BY 子句中的函数的未经路径检查的 Order 实例。这是可能的,因为订单附加到给定的查询字符串。默认情况下,Spring Data JPA 拒绝任何包含函数调用的 Order 实例,但您可以使用 JpaSort.unsafe 添加潜在的不安全排序。
推荐阅读
- java - 从 POM.xml 中选择的 Maven 不正确的 JIBX 版本
- python - 具有全局范围的 py.test 夹具
- r - 确定数据区间的算法
- .net - Nexmo SDK 更新 Nuget 包 .net
- entity-framework - 使用 AutoMapper 创建映射时出错
- reactjs - TypeScript 这个语法“-?”是什么意思?(破折号问题)是什么意思?
- angular6 - .take() 运算符不在 Observables 上工作
- cumulocity - 如何使用 Java SDK 删除操作
- android - 自定义listview不能显示所有数据,android studio
- c# - 存在多个同名元素的C# XML-Linq Query