Spring boot 使用spring和querydsl进行排序

Spring boot 使用spring和querydsl进行排序,spring-boot,querydsl,Spring Boot,Querydsl,我试图在@RepositoryRestResource中进行排序,在这里我创建了一个自定义查询和几个querydsl接口,但我似乎遗漏了一些东西。分页可以工作,但不能对包含多个单词(shippedQty)的字段进行排序。在其他字段上进行排序工作正常。这是一个PagingAndSortingRepository错误,还是我必须执行其他操作或多单词字段 @RepositoryRestResource(path = "/report", collectionResourceRel = "report"

我试图在@RepositoryRestResource中进行排序,在这里我创建了一个自定义查询和几个querydsl接口,但我似乎遗漏了一些东西。分页可以工作,但不能对包含多个单词(shippedQty)的字段进行排序。在其他字段上进行排序工作正常。这是一个PagingAndSortingRepository错误,还是我必须执行其他操作或多单词字段

@RepositoryRestResource(path = "/report", collectionResourceRel = "report", itemResourceRel = "report")
public interface ReportRepository extends PagingAndSortingRepository<Report, Long>, QueryDslPredicateExecutor<Report>,
        QuerydslBinderCustomizer<QReport> {

    @Override
    default void customize(QuerydslBindings bindings, QReport report) {
        bindings.including(
                report.description,
                report.item,
                report.program,
                report.shippedQty,
        );
        bindings.excludeUnlistedProperties(true);

        SingleValueBinding<NumberPath<Integer>, Integer> numberPathContains = (path, value) -> path.stringValue().contains(value.toString());

        bindings.bind(firstFill.description).first(StringPath::containsIgnoreCase);
        bindings.bind(firstFill.item).first(StringPath::containsIgnoreCase);
        bindings.bind(firstFill.program).first(StringPath::containsIgnoreCase);
        bindings.bind(firstFill.shippedQty).as("shipped_qty").first(numberPathContains);

 }
}
这并不是:

http://localhost:8080/api/v1/report?page=0&size=5&sort=shipped_qty,asc

我自己也遇到了这个问题。结果表明,Sort不使用QueryDSL存储库绑定别名,而是使用“Q”实体路径的名称

http://localhost:8080/api/v1/report?page=0&size=5&sort=shipped_qty,asc