2016-10-21 4 views
0

Я использую SugarORM для своего приложения для Android. Я хочу загружать сообщения из базы данных SQLite, но вам нужно смещение.SugarORM offset не работает

Так что я загружаю сообщение 5-15, как для разбивки на страницы.

К сожалению, функция смещения не работает должным образом. я писал:

query = Select.from(Message.class) 
    .where(Condition.prop("MESSAGES").eq(Long.toString(getId()))) 
         .orderBy("timestamp DESC") 
         .limit("5") 
         .offset("10"); 
query.list(); 

Но это только дает мне предел 5 элементов, но не использует смещение.

То же, если я параметризировать вызов запроса, как это:

List<Message> messages = getAllMessagesQuery.offset("5").list(); 

Offset не работает.

Я что-то не так? Я использую версию SugarORM 1,5

(компилировать 'com.github.satyan: сахар: 1.5')

с указанием рабочей функциональности смещения. Так что это не должно быть проблемой.

Любые идеи, как сделать эту работу?

ответ

0

Ну, не уверен, что это лучший способ сделать, но по крайней мере он работает таким образом. Если я добавлю короткую версию к пределу, все будет работать нормально. Таким образом, используя запрос, как это:

List<Message> messages = getAllMessagesQuery.limit("5,10").list(); 

дает мне 10 сообщений с 5 сообщением смещения.

Если это слишком грязно, сырой запрос также работает нормально. Итак, вы пишете:

List<Message> messages = Chat.findWithQuery(Message.class, "Select * from Message where Chat = ? ORDER BY timestamp DESC LIMIT 10 OFFSET 5", getId().toString()); 

По-прежнему не знаете, как использовать параметр смещения напрямую, но по крайней мере он работает таким образом.

Смежные вопросы