Multiple orderBy fields

20 views
Skip to first unread message

SvSigb

unread,
Jun 29, 2016, 4:28:33 AM6/29/16
to Querydsl
Hi.

I am trying to write a dynamic query where the orderBy clause may contain 1 or more fields:
       
        SQLQuery<MyClass> qry = queryFactory.select(blablabla)
                .from(myTable)
                .where(whereClause)
                .orderBy(field1.asc(), field2.desc(), ......)
                .fetch();

Any suggestions on how to do this?

Thanks,
Sveinung

SvSigb

unread,
Jun 29, 2016, 7:20:57 AM6/29/16
to Querydsl
OK. I found it out myself. I create an OrderSpecifier array that I put into the orderBy clause:

        List<OrderSpecifier> l = new ArrayList<>();
.....
l.add(field1.desc());
l.add(field2.asc());
l.add(field3.desc());
.....
OrderSpecifier[] orderCols = l.toArray(new OrderSpecifier[l.size()]);

        SQLQuery<MyClass> qry = queryFactory.select(blablabla)
                .from(myTable)
                .where(whereClause)
                .orderBy(orderCols)
                .fetch();

Reply all
Reply to author
Forward
0 new messages