«сортировка» (post sort) будет выполняться java в памяти, а «order by» (предварительная сортировка) будет выполняться rdbms. Разрешение rdbms делать это с SQL более эффективно в большинстве случаев. Сортировка java будет управляться методом сравнения любого объекта, который вы сортируете
SQL так же просто, как добавить предложение по предложению к вашему HQL следующим образом:
from Comments order by profile_ID
или, используя аннотации, вы можете указать в отображении, как сделать заказ:
@org.hibernate.annotations.OrderBy(
clause = "profile_id asc"
)
чтобы ваши результаты сортировались в памяти по java, вы можете сопоставить коллекцию комментариев как SortedMap или SortedSet
@org.hibernate.annotations.Sort(
type=org.hibernate.annotations.SortType.NATURAL
)
private SortedSet<Comment> comments = new TreeSet<Comment>();
"NATURAL" в этом случае будет ожидать, что класс Comment будет гарантировать, что комментарии были отсортированы по profile_id с помощью метода compareTo.
вы также можете использовать SortType.CoMPARATOR для еще большего контроля, если ваш класс комментариев реализует компаратор.
ссылка: Java Persistence с Hibernate
и http://henko.net/imperfection/sorted-collections-in-hibernate/