1

这是我的简单情况:

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

谢谢。

4

1 回答 1

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

于 2013-11-11T18:51:58.550 回答