Spring 数据剩余嵌套 属性 使用 JsonUnwrapped 排序

Spring Data Rest nested property sort with JsonUnwrapped

所以,我有这个 class,使用 @EmbeddedId@JsonUnwrapped 注释

@Entity
class Order {
    @EmbeddedId @JsonUnwrapped
    private OrderPK pk;
    private String field1;
    private String field2;
    //...getters, setters
}

这是主键class

@Embeddable
class OrderPK implements Serializable {
    private String orderNumber;
    private String company;
    //...getters, setters
}

我想让 Spring 数据 REST 排序将 PK class 中的字段视为顶级而不是嵌套。基本上,我想使用这个:.../orders?sort=orderNumber,desc,而不是 .../orders?sort=pk.orderNumber,desc。我在文档中找不到任何方法来执行此操作。

如果您使用 @EmbeddedId 选项来实现您的复合键,您将无法再实现您的目标。原因是EmbeddedId底层的属性class不能作为平面参数取出来

请注意,@JsonUnwrapped 不是 旨在执行该任务。

您可以使用以下选项代替@EmbeddedId 来实现您的目标。

  • 使用@IdClass。按照这个 example.