मुझे लगता है, यह आपकी आवश्यकताओं के अनुरूप होगा:
criteria.addOrder(Order.asc("name").ignoreCase())
.setProjection(Projections.distinct(Projections.property("name")))
.list();
या, यह मानदंड एक सबक्वेरी के रूप में एक नाम प्रक्षेपण के साथ एक अलग मानदंड का उपयोग करता है:
DetachedCriteria distinctNamesCriteria = DetachedCriteria.forClass(Person.class);
distinctNamesCriteria.setProjection(Projections.distinct(Projections.property("name")));
criteria.add(SubQueries.propertyIn("name", distinctNamesCriteria))
.addOrder(Order.asc("name").ignoreCase())
.list();