Dada una representación de las tablas de la base de datos donde dos entidades están conectadas a través de una tabla de unión, ¿es posible ordenar la otra entidad especificando el orden de clasificación de alguna manera a través de anotaciones?¿Cómo ordenar a través de una tabla de asociación en hibernación?
considerar, más o menos, las siguientes tablas de la base:
actor (id, name)
credit (actorId, movieId, roleName)
movie (id, title, year)
y de hibernación entidades como:
@Entity
class Actor {
@Id
Integer id;
@Column
String name;
@OneToMany
@JoinColumn(name = "actorId")
List<Credit> credits;
}
@Entity
class Credit {
@Column
String roleName;
@ManyToOne
@JoinColumn(name = "movieId")
Movie movie;
}
@Entity
class Movie {
@Id
Integer id;
@Column
Integer year;
@Column
String title;
}
así que me gustaría ser capaz de tener la orden predeterminado Créditos de retorno para un fin Actor en orden descendente por el año de la película:
actor.getCredits(); // Returns credits in order of Credit.movie.year
Parece un nivel La unión profunda es bastante fácil de ordenar usando @OrderBy, por ejemplo @OrderBy ("roleName") ... pero, ¿cómo puedo hacer otra combinación más profunda?
Gracias!
Esta solución tiene el grave inconveniente de que la paginación se ha convertido en imposible, ya que los resultados se clasifican en el nivel de aplicación en lugar de la capa de base de datos! –