0
我已验证我正在查找的实体是否在数据存储区中。我已经验证了作为方法参数传递的列表包含此实体。我正在尝试查找所有包含在我通过的字符串列表中的“userGmail”的对象。使用集合参数的GAE查询
这里是我的代码
@SuppressWarnings("unchecked")
@ApiMethod(name = "findFriendsByEmailList")
public CollectionResponse<ZeppaUser> findFriendsByEmailList(
@Named("emailsList") List<String> emailsList, User user)
throws OAuthRequestException {
if (user == null) {
throw new OAuthRequestException(
"Null User Authorization Exception, findFriendsByEmailList");
}
PersistenceManager mgr = null;
List<ZeppaUser> execute = null;
Query query = null;
try {
mgr = getPersistenceManager();
query = mgr.newQuery(ZeppaUser.class);
query.declareParameters("java.util.List emailListParam");
query.setFilter("emailListParam.contains(userGmail)");
execute = (List<ZeppaUser>) query.execute(emailsList);
query.closeAll();
} finally {
mgr.close();
}
return CollectionResponse.<ZeppaUser> builder().setItems(execute)
.build();
}
这是堆栈跟踪我从中得到:
事情值得注意:我没有收到上列出这个错误我在传递给不含数据存储中找到的元素。就在它确实存在时,这导致我相信查询已找到该元素,但尚未被正确关闭或执行到返回参数中。如果最好返回比确定更好的列表。我已经尝试过多种变化,迄今为止没有成功。它变得相当令人沮丧。