2016-08-30 2 views
1

У меня есть запрос, который выбирает людей из таблицы.jOOQ Как использовать опциональную сортировку

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(); 

Этот код работает очень хорошо. Поскольку я отображаю данные в таблице datatables, мне нужно иметь опциональную/динамическую сортировку. Пока я не нашел решения.

ответ

1

нашел решение сам в настоящее время:

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

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