这是我的简单情况:
@Entity
@Table(name = "project")
public class Project implements Serializable {
@Id
private Long id;
@OneToMany(mappedBy = "project")
private List<Author> authors;
public List<Author> getAuthors() {
return authors;
}
}
public class DAO {
public void getOrderedAuthorsByProject(Project project) {
return project.getAuthors(); // Line 1
}
}
在第 1 行中,如何返回按作者实体的特定列排序的作者列表,只需执行 get 操作?
谢谢。
最佳答案
如果您希望排序的属性是作者中的字段(即作者表中的列),那么您可以使用@OrderBy:
@OneToMany(mappedBy = "project")
@OrderBy("surname, forename asc")
private List<Author> authors;
如果它是嵌套属性,那么您可以使用(Hibernate 特定的,非 JPA)@Sort
注释来进行内存中排序。如果您的作者实体实现了 Comparable 接口(interface),您可以指定 Comparator 或指定 SortType = NATURAL。
关于hibernate - 获取按列排序的惰性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913450/