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

时间:2018-12-19 18:02:33

标签: java spring spring-data-jpa

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

  

2018-12-18 05:17:58.172警告7 --- [http-nio-8000-exec-3] .mmaExceptionHandlerExceptionResolver:已解决[org.springframework.data.mapping.PropertyReferenceException:未找到属性totalExp输入DepEntity!]

我尝试使用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;
}

我希望嵌套属性totalExp上的结果按排序顺序排列。 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

下面应该可以工作:

Sort sort = new Sort(Direction.DESC, "exp.totalExp");
PageRequest pageRequest = PageRequest.of(0, 10, sort);
Page<DepEntity> depEntities  = depEntityRepository.findAll(pageRequest);