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

标签 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;

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

最佳答案

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

例如:

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

关于hibernate - 是否可以使用 JPA @OrderBy 注释以不区分大小写的方式进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21689415/

相关文章:

mysql - 从 3 个表中选择两个 order by 之前两个 group by

java - 如何在 Hibernate 搜索中将范围查询与关键字查询结合起来?

java - Hibernate 仅从数据库中检索第一条记录,其余为空

Spring boot 和 Spring Data JPA @Transactional 不工作

java - 如何将带有子查询的 SQL 查询转换为 JPA 标准生成器

asp.net - MySQL 根据列的内容更改顺序

sql-server - 使用 CASE 函数自定义查询输出排序

hibernate - 使用 Hibernate 让我的 webapp 与数据库无关

java - 集群故障转移后连接到 Aurora-Mysql 时出现通信链路故障

eclipse - 类 "model.Address"在 persistence.xml 文件中列出但未映射