【发布时间】:2010-01-12 18:25:38
【问题描述】:
给定数据库表的表示,其中两个实体通过连接表连接,是否可以通过注释以某种方式指定排序顺序的另一个实体进行排序?
大致考虑以下数据库表:
actor ( id, name )
credit ( actorId, movieId, roleName )
movie ( id, title, year )
以及休眠实体,例如:
@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;
}
所以我希望能够让默认排序顺序按电影年份的降序返回演员的演职员表:
actor.getCredits(); // Returns credits in order of Credit.movie.year
似乎使用@OrderBy 对一级深度的连接进行排序非常简单,例如@OrderBy("roleName") ...但是我如何进行更深层次的连接?
谢谢!
【问题讨论】: