4

我有以下域对象:

@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 的“title”

我怎么能用 Spring Data JPA 做到这一点?

Iterable<Item> items = itemRepository.findAll(new Sort("???"));

示例代码可以在这里找到:
https ://github.com/altfatterz/sort-poc/

任何反馈表示赞赏。

4

1 回答 1

18

您可以使用 JPA 或 Hibernate@OrderBy注释:

@OneToMany
@OrderBy("value ASC") // sort by value ASC
private List<PropertyDefinition> propertyDefinitions;

否则,您可以创建自己的查询以使用Criteria或 HQL对它们进行排序Query

于 2013-07-25T15:59:09.537 回答