Пример:
Учитывая приведенный ниже сценарий, как лучше всего выполнить запрос к группам, добавив: список элементов, упорядоченный по имени, и (для каждого элемента) список StateItem, упорядоченный по описанию StateObject? >
Код: Выделить всё
public class Group {
// ...
@Fetch(FetchMode.JOIN)
@OneToMany(mappedBy = "group")
private List itemList;
// ...
}
public class ItemGroup {
// ...
@JoinColumn(name="ID_GROUP", referencedColumnName="ID_GROUP")
@ManyToOne
private Group group;
@Fetch(FetchMode.JOIN)
@OneToMany(mappedBy = "item")
private List 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;
// ...
}
И решение с помощью @SortNatural или @SortComparator не является производительным.
Могу ли я выполнить эту работу, используя только HQL или критерии?
Подробнее здесь: https://stackoverflow.com/questions/464 ... st-in-list