是否可以使用JPA @OrderBy批注以不区分大小写的方式进行排序?

时间:2014-02-10 22:41:30

标签: hibernate jpa sql-order-by jpa-2.0 jpa-2.1

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

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

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

1 个答案:

答案 0 :(得分:2)

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

例如:

Set<User> roster = new TreeSet<User>(new MyComparator());