3

我正在使用 JPA 2.0、Hibernate 4.1.0.Final 和 MySQL 5.5。我想使用 @OrderBy 注释对我的一个实体中的集合进行排序……</p>

@OneToMany(mappedBy = "classroom", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, orphanRemoval=true)
@OrderBy(“name”)
private Set<User> roster;

但是,我希望以不区分大小写的方式对集合进行排序,或者至少根据“名称”属性的小写字母对所有内容进行排序。JPA可以做到这一点吗?如果这解决了我的问题,我可以升级我的 JPA 和 Hibernate 版本。

4

1 回答 1

2

如果您想坚持使用标准的 JPA 注释而不使用提供者(Hibernate)特定的注释,这是不可能的。但是,通过将 TreeSet 与您自己的比较器一起使用,您可以实现相同的行为。

例如:

Set<User> roster = new TreeSet<User>(new MyComparator());
于 2014-02-17T03:01:05.737 回答