【发布时间】:2014-03-08 12:07:04
【问题描述】:
我正在使用 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;
但是,我希望以不区分大小写的方式对集合进行排序,或者至少根据“名称”属性的小写字母对所有内容进行排序。 JPA可以做到这一点吗?如果这能解决我的问题,我可以升级我的 JPA 和 Hibernate 版本。
【问题讨论】:
-
这依赖于 Hibernate 而不是纯 JPA,但您可以查看 stackoverflow.com/questions/19871765/…
-
另一种变化可能是在数据库中定义一个计算列,如
lower(name),为其定义一个属性(使其为只读),然后按它排序。然后又不是很 JPA-ish。 -
关于您发布的第一个链接,他在哪里进行不区分大小写的排序?将我的变量设为 SortedSet 并不能解决我的问题。
-
让你的实体实现
Comparable并按照你的意愿实现... -
我不想那样做,反正这不是我的问题。
标签: hibernate jpa sql-order-by jpa-2.0 jpa-2.1