У меня есть класс сказать: «ClassA», который имеет коллекцию «ClassB»Hibernate @OrderBy с ссылочного класса
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "COLUMN_NAME")
private List<ClassB> lotsOfClasses;
«ClassB» имеет отображенный класс «ClassC», используя простые старые аннотаций отображения:
public class ClassB {
...
@ManyToOne
@JoinColumn(name="AD_POINT_ID")
private ClassC classC;
...
}
Как добавить @OrderBy аннотацию к коллекции CLASSA к ClassB, так что коллекция заказана собственности «имя» ClassC
Как так:
@OrderBy(clause="classC.name asc")
Все, что я получаю, это исключения Oracle, говорящие, что classC неизвестен.
Любая помощь здесь была бы потрясающей, так как ее действительно беспокоило меня в данный момент.
P.S. Следует также упомянуть, что используя аннотацию OrderBy в коллекции следующим образом: @OrderBy (clause = "classC asc") (т.е. без .name на classC) Я получаю действительный оператор SQL, в котором используется столбец ID (первичный ключ) класса C для заказа.
Приветствия, Все
Как полагают Иржи Vypědřík вы можете реализовать интерфейс java.util.Comparator. В реализованном методе сравнения вы можете реализовать логику, чтобы ссылаться на объект Hibernate Mapped без проблем, и соответственно вернуть значение int. Тем не менее, это не будет использовать порядок в базе данных Oracle DB, но в памяти (JVM). – prageeth