tengo una clase dice: "claseA", que tiene una colección de "ClassB"Hibernate @OrderBy con la clase referenciada
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "COLUMN_NAME")
private List<ClassB> lotsOfClasses;
"ClassB" tiene una clase mapeada "ClassC" las anotaciones de mapeo llanura de edad:
public class ClassB {
...
@ManyToOne
@JoinColumn(name="AD_POINT_ID")
private ClassC classC;
...
}
¿Cómo puedo añadir una anotación @OrderBy a la colección de claseA a ClassB, por lo que se ordenó la colección por la propiedad "nombre" del ClassC
así:
@OrderBy(clause="classC.name asc")
Todo lo que tengo son excepciones de Oracle que dicen que classC es desconocido.
Cualquier ayuda aquí sería increíble, ya que realmente me está molestando en este momento.
P.S. También debería mencionar que al usar la anotación OrderBy en la colección como esta: @OrderBy (cláusula = "classC asc") (es decir, sin .name en la clase C) obtengo una instrucción SQL válida, que utiliza la columna ID (la clave principal) de classC para ordenar por.
Saludos, Marcar
Según lo sugerido por Jiří Vypědřík se puede implementar la interfaz java.util.Comparator. En el método de comparación implementado puede implementar la lógica para hacer referencia al objeto Hibernate asignado sin problema y devolver el valor int en consecuencia. Sin embargo, esto no utilizará el orden en Oracle DB, sino en la clasificación en memoria (JVM) en su lugar. – prageeth