Spring数据查询dsl如何添加order by?

我是 Querydsl 的新手,我正在使用 Spring 数据和 Querydsl 来制作动态过滤器,我使用接口:QueryDslPredicateExecutor所以我可以使用不同的实体字段过滤数据,现在我想在我的查询中添加“order by”基于BooleanExpression。


这是我的代码:


QPersonData _personInventory = QPersonData.personData;

BooleanBuilder query = new BooleanBuilder();


query.and(_personInventory.status.eq(status));

然后我使用查询调用了我的存储库接口:


personInventoryRepository.findAll(query, pageable);

我的问题是如何根据实体上的不同字段将“order by”应用于查询对象?


繁华开满天机
浏览 105回答 3
3回答

眼眸繁星

最后感谢大家这个解决方案对我有用: QPersonData _personInventory = QPersonData.personData; BooleanBuilder query = new BooleanBuilder();  query.and(_personInventory .status.eq(status)); personInventoryRepository.findAll(query,0, Integer.MAX_VALUE,new QSort(_personInventory.field1.asc(),_personInventory.field2.asc()));   

慕虎7371278

您可以为页面信息添加排序: Sort sort = new Sort.Order(Sort.Direction.ASC,"filedname").nullsLast(); PageRequest pageRequest = new PageRequest(pageNumber, pageSize, sort); personInventoryRepository.findAll(query,pageRequest); 

翻阅古今

在您的存储库界面中添加一个方法findByStatus(status)然后使用如下代码块Pageable pageable = new PageRequest(offset, limit, Direction.DESC, "updatedAt");repository.findByStatus(status, pageable);如果您使用 spring boot 2.0.0 => 然后使用方法PageRequest.of(....)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java