使用Objectify 4.0b3 / 5.02升级到GAE SDK 1.9.3 / 4时出现问题
当我使用排序过滤器执行查询并重用光标时,它正在抛出
"IllegalArgumentException?: Cursor does not match query"
代码在
之下QueryResultIterator<FollowJoin> results = ofy().load().type(FollowJoin.class).
filter("followerKey", PositionUser.key(1)).
order("sortIndexFollowing").
limit(1).
startAt(cursor).
iterator();
cursor = results.getCursor();
返回的光标与从本机DS查询返回的光标奇怪地不同。
>>>Position {
IndexValue {
property: "sortIndexFollowing"
value <
>
}
key <
app: "test"
path <
Element {
type: "FollowJoin"
name: "USER_10-USER_1"
}
>
>
start_inclusive: false
}
Objectify游标缺少排序字段
>>>Position {
key <
app: "test"
path <
Element {
type: "FollowJoin"
name: "USER_10-USER_1"
}
>
>
start_inclusive: false
}
这个确切的代码适用于SDK 1.9.2。
但GAE SDK 1.9.3,1.9.4失败。
显然我的查询是使用订单参数,但光标不包含订单字段。
它似乎仅限于开发环境,并且不会出现在生产环境中。 这导致了对开发测试的问题。
导致行为改变的原因是什么?
感谢
-lp
答案 0 :(得分:1)
此问题不是由Objectify引起的。我在不使用Objectify的项目中遇到了完全相同的问题。
错误是由App Engine SDK中的更改引起的。
我建议回滚到1.9.2。直到有更新。
编辑:发布错误报告(https://code.google.com/p/googleappengine/issues/detail?id=10943)