什么是查询对象并在排序列表中返回其列表属性的最佳方式?休眠 - 如何排序内部查询列表(或列表中的列表)?
例子:
下面给出的情况下,什么是做一个组的查询,通过将最好的办法:项目名称和(为每个项目)在描述有序的StateItem列表排序列表StateObject的?
public class Group {
// ...
@Fetch(FetchMode.JOIN)
@OneToMany(mappedBy = "group")
private List<ItemGroup> itemList;
// ...
}
public class ItemGroup {
// ...
@JoinColumn(name="ID_GROUP", referencedColumnName="ID_GROUP")
@ManyToOne
private Group group;
@Fetch(FetchMode.JOIN)
@OneToMany(mappedBy = "item")
private List<StateItem> stateList;
// ...
}
public class StateItem {
// ...
@JoinColumn(name="ID_ITEM", referencedColumnName="ID_ITEM")
@ManyToOne
private ItemGroup item;
@JoinColumn(name="CD_STATE", referencedColumnName="CD_STATE")
@ManyToOne
private StateObject state;
// ...
}
public class StateObject {
// ...
@Column(name="DE_STATE_OBJECT", length=255)
private String description;
// ...
}
PS:我觉得我不能使用@OrderBy因为我有排序子节点属性,如StateObject例子。 而@SortNatural或@SortComparator的解决方案不是performatic。 我可以仅使用HQL或Criteria来完成这项工作吗?
最好在父类中编写'@ NamedQuery'。 –