2011-11-25 26 views
7

Tôi có một truy vấn tạo ra với tiêu Hibernate như thế này:Case-nhạy cảm đặt hàng sử dụng Hibernate Tiêu chuẩn


Criteria criteria = db.getSession().createCriteria(Vendor.class); 
criteria.addOrder(Property.forName("shortName").asc()); 
List<Vendor> vendorList = criteria.list(); 

Tôi muốn đặt hàng là case-insensitive, tương đương với truy vấn HQL


FROM Vendor ve ORDER BY lower(ve.shortName) 

Làm thế nào tôi có thể đạt được điều này bằng cách sử dụng tiêu chuẩn Hibernate?

Trả lời

22
criteria.addOrder(Order.asc("shortName").ignoreCase()); 
+0

Cảm ơn, phương pháp sau đã hoạt động. Đầu tiên không, bởi vì phương thức Property.forName trả về một đối tượng Property, mà không có phương thức ignoreCase: http://javasourcecode.org/html/open-source/hibernate/hibernate-3.5.6-Final/org/ hibernate/criterion/Property.html. – simon

+0

u rất hân hạnh. – erimerturk

Các vấn đề liên quan