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.
所以,我有这个 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.