2016-08-30 59 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(); 

此代碼工作得很好。因爲我將數據顯示在數據表中,所以我需要具有可選/動態排序功能。到目前爲止我沒有找到解決方案。

回答

1

現在找到了自己的解決方案:

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

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