java retainall_java – 导致此retainAll异常的原因是什么?

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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值