我使用 nullslast() 作为示例代码,如下所示,
List<Sort.Order> orders = new ArrayList<>();
Sort.Order orderAuditTime = new Sort.Order(Sort.Direction.DESC,"auditTime");
Sort.Order orderEntryTime = new Sort.Order(Sort.Direction.DESC,"customer.entryTime");
orders.add(orderAuditTime.nullsLast());
orders.add(orderEntryTime);
sort = new Sort(orders);
但是最后得到了没有空值的sql:
order by
auditrecor0_.audit_time desc,
customer1_.entry_time desc limit ?
有人可以帮助我为什么 orderAuditTime.nullsLast() 不起作用吗?
数据库是postgre,orm框架是hibernate。
最佳答案
据我所知,Sort.Order 的实例被转换为 javax.persistence.criteria.Order。该接口(interface)不支持 nulls first/last:
package javax.persistence.criteria;
public interface Order {
Order reverse();
boolean isAscending();
Expression<?> getExpression();
}
因此,Sort.Order 上指定的第一个/最后一个空值将被忽略。
关于java - 如何使用spring data jpa Sort.Order.nullslast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36881217/