SugarORM抵消不起作用

时间:2016-10-21 14:49:06

标签: android sqlite sugarorm

我正在为我的Android应用程序使用SugarORM。我想从SQLite DB加载消息但需要偏移量。

所以我加载了消息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

  

(编译'com.github.satyan:sugar:1.5')

说明工作偏移功能。所以这不应该是问题。

任何想法如何使这项工作?

1 个答案:

答案 0 :(得分: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());

仍然不知道如何直接使用offset参数,但至少它以这种方式工作。