获取按列排序的惰性列表

时间:2013-11-11 18:40:32

标签: hibernate jpa orm entity

这是我的简单情况:

@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?

感谢。

1 个答案:

答案 0 :(得分:2)

如果您要排序的属性是Author中的一个字段(即Authors表中的一列),那么您可以使用@OrderBy:

@OneToMany(mappedBy = "project")
@OrderBy("surname, forename asc")
private List<Author> authors; 

如果它是嵌套属性,那么您可以使用(Hibernate specific,non JPA)@Sort注释来进行内存中的排序。如果Author实体实现了Comparable接口,您可以指定Comparator或指定SortType = NATURAL。

http://java.dzone.com/news/sorting-collections-hibernate