简体   繁体   中英

jOOQ how to use optional sorting

I have a query which selects persons from a table.

SelectConditionStep<PersonRecord> select = context
    .selectFrom(Tables.PERSON)
    .where(Tables.PERSON.ISDELETED.eq(false));

if(searchValue != null && searchValue.length() > 0){
    select.and(Tables.PERSON.LASTNAME.likeIgnoreCase(String.format("%%%s%%", searchValue)));
}
List<PersonRecord> dbPersons = select
    .orderBy(Tables.PERSON.LASTNAME, Tables.PERSON.FIRSTNAME, Tables.PERSON.ID)
    .limit(length).offset(start)
    .fetch();

This code works pretty well. Because I display the data in a datatables table I need to have optional / dynamic sorting capability. I did not find a solution so far.

found the solution myself now:

Collection<SortField<?>> sortFields = new ArrayList<>();
sortFields.add(Tables.PERSON.FIRSTNAME.asc());

List<PersonRecord> dbPersons = select
        .orderBy(sortFields)
        .limit(length).offset(start)
        .fetch();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM