2011-11-25 13 views
7

Ho una domanda creata con criteri di Hibernate in questo modo:case-insensitive di ordinazione utilizzando criteri di Hibernate


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

vorrei l'ordinamento di essere, case-insensitive equivalente alla query HQL


FROM Vendor ve ORDER BY lower(ve.shortName) 

Come posso ottenere questo utilizzando i criteri di sospensione?

risposta

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

Grazie, il secondo metodo ha funzionato. Per prima cosa no, perché il metodo Property.forName restituisce un oggetto Property, che non ha un metodo ignoreCase: http://javasourcecode.org/html/open-source/hibernate/hibernate-3.5.6-Final/org/ hibernate/criterio/Property.html. – simon

+0

siete benvenuti. – erimerturk