java.lang.UnsupportedOperationException: This operation is not supported on Query Results
at org.datanucleus.store.query.AbstractQueryResult.contains(AbstractQueryResult.java:250)
at java.util.AbstractCollection.retainAll(AbstractCollection.java:369)
at namespace.MyServlet.doGet(MyServlet.java:101)
我正在尝试从数据存储区查询中检索一个列表,并仅保留我从列表中检索到的列表中的结果.我的列表都按预期填充,但我似乎无法在其中任何一个上使用retainAll.
// List listOne = new ArrayList(query.execute(theQuery));
// DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
// List listTwo = new ArrayList(ds.get(keys).values());
// listOne.retainAll(listTwo);
编辑
好的,为了简化,因为这显然是多个问题,我已经停止使用低级API进行数据存储而不是仅仅通过循环逐个拉动.
List test = (List) query.execute();
List test2 = new ArrayList();
for (String key : favorites) {
test2.add(pm.getObjectById(MyClass.class, key));
}
log.info(test.toString());
test.retainAll(test2);
以上工作.它不会抛出异常.以下确实抛出异常.唯一的区别是log.info.我很难过.
List test = (List) query.execute();
List test2 = new ArrayList();
for (String key : favorites) {
test2.add(pm.getObjectById(MyClass.class, key));
}
test.retainAll(test2);