개체를 쿼리하고 정렬 된 목록에서 해당 목록 특성을 반환하는 가장 좋은 방법은 무엇입니까?최대 절전 모드 - 내부 쿼리 목록 (또는 목록에서 정렬)을 정렬하는 방법?
예 : 이름 및 설명에 의해 주문 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;
// ...
}
추신 : StateObject 예제에서와 같이 하위 속성별로 정렬해야하므로 @OrderBy를 사용할 수 없다고 생각합니다. @SortNatural 또는 @SortComparator를 사용하는 솔루션이 성능이 우수하지 않습니다. HQL 또는 Criteria 만 사용하여 해당 작업을 수행 할 수 있습니까?
부모 클래스에'@ NamedQuery'를 쓰는 것이 좋습니다. –