我正在尝试获取记录 20 到 30 的记录。
我有返回jdo查询,看起来像
@javax.jdo.annotations.Queries( {
@javax.jdo.annotations.Query(
name="message_getByUsername", language="JDOQL",
value="SELECT FROM com.message.pojo.MessagePojo WHERE to== :username order by SendDate "),
@javax.jdo.annotations.Query(
name="message_getByGroup", language="JDOQL",
value="SELECT FROM com.message.pojo.MessagePojo WHERE group== :group order by SendDate ")
})
我正在调用类似的查询
public List<MessageConversationPojo> retriveInbox(@Named("username") String username) {
List<MessageConversationPojo> listOfMessage = allMatches(new QueryDefault<MessageConversationPojo>(
MessageConversationPojo.class, "message_inbox", "username", retriveUserByUsername(username)));
if (listOfMessage.size() != 0) {
return listOfMessage;
}
return null;
}
现在我怎样才能获取第20行到第30行的记录。
最佳答案
当前发布的版本(core 1.3.0、objectstore-jdo-1.3.0)尚未实现此功能。
但是,我刚刚创建了一张票 ISIS-579进行增强并实现更改。要取回记录 20 到 30,您可以使用:
QueryDefault<MessageConversationPojo> q =
new QueryDefault<MessageConversationPojo>(...).withStart(20).withCount(10);
可能需要几个月的时间才能发布,因此在此期间您可以build Isis from source
关于java - 如何使用 Apache ISI 中的 jdo 查询从表行号在 20 到 30 之间获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19630196/