Skip to main content

排序

使用 LambdaTemplate 通过如下方式可以构建排序查询。

排序用法
LambdaTemplate lambda = ...

List<User> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.orderBy(User::getName);//默认排序(order by name)
//.asc(User::getName); //生序 (order by name asc)
//.desc(User::getName); //降序 (order by name desc)

// 对应的 SQL
// select * from users where id >= 100 order by name;
多个排序列
LambdaTemplate lambda = ...

List<User> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.orderBy(User::getName)
.orderBy(User::getAge);

// 对应的 SQL
// select * from users where id >= 100 order by name, age;
NULL 最前
LambdaTemplate lambda = ...

List<User> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.orderBy(User::getName, OrderType.DEFAULT, OrderNullsStrategy.FIRST);

// 对应的 SQL(MySQL)
// select * from users where id >= 100 order by name is null desc, name
NULL 最后
LambdaTemplate lambda = ...

List<User> result = null;
result = lambda.query(User.class)
.ge(User::getId, 100)
.orderBy(User::getName, OrderType.DEFAULT, OrderNullsStrategy.LAST);

// 对应的 SQL(MySQL)
// select * from users where id >= 100 order by name is null asc, name
提示
  • NULL 最前/最后,所使用的 OrderNullsStrategy 策略是否支持请参考 数据库支持性 中的空值排序策略。