Spring Data Rest嵌套属性与JsonUnwrapped一起排序

时间:2018-09-25 05:49:52

标签: java jackson spring-data-jpa spring-data-rest

因此,我有一个此类,使用@EmbeddedId@JsonUnwrapped批注

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

这是主键类

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

我想让Spring Data REST排序将PK类中的字段视为顶级而不是嵌套的。基本上,我想使用以下一个:.../orders?sort=orderNumber,desc,而不是.../orders?sort=pk.orderNumber,desc。我在文档中找不到任何方法。

1 个答案:

答案 0 :(得分:0)

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

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

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

  • 使用@IdClass。遵循此example