如果说要排序的字段中带有下划线,查询报错,如下:
Spring Data Jpa源码中这部分的处理代码如下
这里只需要对属性名转义,在头和尾添加\Q和\E就可使中间的标点符号失去特殊意义,将中间的字符作为普通字符。这样Spring Data Jpa就可以正确识别该属性了。注意,能处理转义字符的方法是JpaSort.unsafe(),Sort.by()是不支持的。
补充:转义字符(\Q \U \L \E)
使用 \U 开始,\E 结束,除了具有 \Q...\E 相同的功能外,还将中间的小写字母转换成大写。在大小写敏感模式下,只能与大写文本匹配。
使用 \L 开始,\E 结束,除了具有 \Q...\E 相同的功能外,还将中间的大写字母转换成小写。在大小写敏感模式下,只能与小写文本匹配。
作者:JSON_NULL
链接:https://www.jianshu.com/p/2dd9bc29a696
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。