使用 Hibernate Criteria 的不区分大小写的排序
Posted
技术标签:
【中文标题】使用 Hibernate Criteria 的不区分大小写的排序【英文标题】:Case-insensitive ordering using Hibernate Criteria 【发布时间】:2012-01-06 08:54:01 【问题描述】:我有一个使用 Hibernate Criteria 创建的查询,如下所示:
Criteria criteria = db.getSession().createCriteria(Vendor.class);
criteria.addOrder(Property.forName("shortName").asc());
List<Vendor> vendorList = criteria.list();
我希望排序不区分大小写,相当于 HQL 查询
FROM Vendor ve ORDER BY lower(ve.shortName)
如何使用 Hibernate Criteria 实现这一目标?
【问题讨论】:
【参考方案1】:criteria.addOrder(Order.asc("shortName").ignoreCase());
【讨论】:
谢谢,后一种方法奏效了。首先没有,因为 Property.forName 方法返回一个 Property 对象,它没有 ignoreCase 方法:javasourcecode.org/html/open-source/hibernate/…。以上是关于使用 Hibernate Criteria 的不区分大小写的排序的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 Criteria 或 DetachedCriteria Hibernate 进行此查询
hibernate hql查询 与Criteria 查询语句区别和效率