2013-07-25 93 views
4

我有以下的域對象:春天JPA的數據排序上嵌套集合

@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/

任何反饋理解。

+0

什麼是「我想排序的項目例如名爲PropertyDefinition.value的'標題'是什麼意思? –

+0

我的意思是我想根據名爲PropertyDefinition的「title」的值對項目進行排序 –

回答

7

可以使用JPA或者Hibernate @OrderBy註釋:

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

否則,您可以創建自己的查詢到他們Criteria或HQL Query排序。