所以,我有这个类,使用@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。我在文档中找不到任何方法可以做到这一点。

最佳答案

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

请注意,@JsonUnwrapped并非旨在执行该任务。

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


使用@IdClass。请遵循此example

08-25 13:58