经过测试,SFunction是运行时由JVM自动序列化的,因此无法手动构造.
不过mybatisPlus提供了一个手动添加表达式的方法.
queryWrapper.getExpression().add(
// 第一个参数为 表达式类型,这里为排序
SqlKeyword.ORDER_BY,
// 第二个参数为 函数式接口,返回一个String,这里排序只需要返回属性名即可.
() -> sortParam.getField(),
// 第三个参数根据用途会变化,当为排序时,这个参数需要传入排序方式
Optional.ofNullable(sortParam.getAsc()).orElse(true) ? SqlKeyword.ASC : SqlKeyword.DESC
);