如何使用 Pageable 对嵌入实体的属性进行排序?

San*_*M K 5 java spring spring-data-jpa

我将一个实体嵌入到另一个实体中,如下所示。该存储库是在DepEntity. 我正在尝试检索在 中的列DepEntity上排序的对象。我正在使用 Pageable 进行 GET 调用并收到错误:totalExpExpEntity

2018-12-18 05:17:58.172 警告 7 --- [http-nio-8000-exec-3] .mmaExceptionHandlerExceptionResolver : 已解决 [org.springframework.data.mapping.PropertyReferenceException: 没有找到类型 DepEntity 的属性 TotalExp!]

我尝试过totalExpexp.totalExpexp_totalExp没有一个起作用。spring data jpa版本是2.1.1

@Entity
public class DepEntity {
    @Embedded
    private ExpEntity exp;
}

@Embeddable
public class ExpEntity {
    @Column(name = "exp_total")
    private BigDecimal totalExp;
}
Run Code Online (Sandbox Code Playgroud)

我希望结果按嵌套属性的排序顺序排列totalExp。有办法实现这一点吗?

Adi*_*xit 3

下面应该可以工作:

Sort sort = Sort.by("exp.totalExp").descending();
PageRequest pageRequest = PageRequest.of(0, 10, sort);
Page<DepEntity> depEntities  = depEntityRepository.findAll(pageRequest);
Run Code Online (Sandbox Code Playgroud)