SugarORM 偏移量不起作用
SugarORM offset not working
我正在为我的 Android 应用程序使用 SugarORM。我想从 SQLite 数据库加载消息但需要一个偏移量。
所以我像分页一样加载消息 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();
偏移不起作用。
我是不是做错了什么?我使用当前的 SugarORM 版本 1.5
( compile 'com.github.satyan:sugar:1.5')
说明工作偏移功能。所以这不应该是问题。
有什么想法可以实现吗?
好吧,不确定这是最好的方法,但至少它是这样工作的。
如果我将短版本添加到限制中,一切正常。
所以使用这样的查询:
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());
仍然不知道如何直接使用偏移参数,但至少它是这样工作的。
我正在为我的 Android 应用程序使用 SugarORM。我想从 SQLite 数据库加载消息但需要一个偏移量。
所以我像分页一样加载消息 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();
偏移不起作用。
我是不是做错了什么?我使用当前的 SugarORM 版本 1.5
( compile 'com.github.satyan:sugar:1.5')
说明工作偏移功能。所以这不应该是问题。
有什么想法可以实现吗?
好吧,不确定这是最好的方法,但至少它是这样工作的。 如果我将短版本添加到限制中,一切正常。 所以使用这样的查询:
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());
仍然不知道如何直接使用偏移参数,但至少它是这样工作的。