JPA查询根据字段中文首字母排序

老板:将查询出来的结果根据城市的中文首字母排下序。 我: 🆗

mysql需要这么写

SELECT * FROM user
ORDER BY CONVERT(city USING gbk) COLLATE gbk_chinese_ci

java代码直接这么写行不通❌

// 排序
Sort sort = Sort.unsorted();
sort = sort.and(Sort.by(Sort.Order.desc("city")));

JPA中想要使用CONVERT(city USING gbk) COLLATE gbk_chinese_ci进行查询,没有找到方法。 后面就直接将数据表中city字段的字符集和排序规则给改了。

image.png

这时上面那段java代码就生效了。