spring可分页排序更改属性名称

knpiaxh1  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(224)

有没有办法Map排序对象的属性?举个小例子:
dto

public class OrderDto {
  private long totalAmount;
  private long openAmount;
}

和一个实体

@Entity
public class Order {
  private long amount;
}

和一个控制器

@RestController
public class OrderController {

  @GetMapping("/orders")
  public Page<OrderDto> findOrders(Pageable pageable) {
   // Do something 
  }
}

我现在打电话 /orders?sort=totalAmount,desc 是否可以Mapsort属性,在本例中为 totalAmount 从dto到only amount 以charmant方式将其用于生成的jpa查询?

1cklez4t

1cklez4t1#

我不知道你的问题是否正确,但是。。。
我是否理解您是否正确,您希望Map请求参数 sort 有价值 totalAmount,desc 可通过 Sort 给定对象 Pageable 对象为 amount (有秩序地) desc )?
由于您在文章中提到的名称,我希望您在类路径上有spring数据。
idkfs,但可能是班级 SortHandlerMethodArgumentResolverCustomizer 可以帮助您自定义 SortHandlerMethodArgumentResolver 这样,您就可以像您希望的那样Map请求参数。
如果没有,那么应该可以提供类型为的@bean SortHandlerMethodArgumentResolver 它实现了您想要的行为。
我不完全确定该框架是否允许覆盖您需要定制的特定部分,但值得一看。:)

相关问题