我有以下域对象:
@Entity
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@OneToMany
private List<PropertyDefinition> propertyDefinitions;
}
@Entity
public class PropertyDefinition {
@Id
private Long id;
private final String name;
private final String value;
}
我想对项目进行排序,例如名为 PropertyDefinition.value 的“标题”
如何使用 Spring Data JPA 做到这一点?
Iterable<Item> items = itemRepository.findAll(new Sort("???"));
示例代码可以在这里找到:
https://github.com/altfatterz/sort-poc/
感谢任何反馈。
最佳答案
您可以使用 JPA 或 Hibernate @OrderBy
注释:
@OneToMany
@OrderBy("value ASC") // sort by value ASC
private List<PropertyDefinition> propertyDefinitions;
否则,您可以创建自己的查询,以使用 Criteria
或 HQL Query
对它们进行排序。
关于Spring Data JPA 对嵌套集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17862967/