Search code examples
javahibernatejpacriteriahibernate-criteria

how to OrderBy length(column_name) using JPA Criteria Builder


I want to create a natural order sort :

I have string valued column like : { a-demo-1, a-demo-2, a-demo-10,a-demo-3}.

I know that:

1)Order by length first of the column and

2)Order by the same column will work.

consider this PostgreSql:

select id, name from table_name
order by length(name), name;

This is working, but I am stuck at converting it into criteria query.

I need help.


Solution

  • criteriaQuery.orderBy( // Order by
         criteriaBuilder.desc( // Descending order
             criteriaBuilder.length( // By length
                  root.get("columnName")))); // Column name