【发布时间】:2016-03-25 17:03:04
【问题描述】:
我正在使用 Objectify 从 GAE 读取一组实体:
List<CountStore> myList = ofy().load().type(CountStore.class).list();
然后我过滤并删除 myList 的一些元素。我现在想删除剩余列表中的所有 id。我认为正确的方法是使用 .ids():
ofy().delete().type(CountStore.class).ids(myList);
但这不起作用 - 它会崩溃(见下文),因为它期望 myList 是 Long 或 String。谁能建议删除一组实体的最佳方法?
谢谢!
java.lang.IllegalArgumentException: id 'com.xyz.abc.CountStore@53d71fff' must be String or Long
at com.googlecode.objectify.util.DatastoreUtils.createKey(DatastoreUtils.java:66)
at com.googlecode.objectify.util.DatastoreUtils.createKeys(DatastoreUtils.java:112)
at com.googlecode.objectify.impl.DeleteTypeImpl.ids(DeleteTypeImpl.java:91)
at com.xyz.abc.CounterServlet.doGet(CountrServlet.java:45)
...
【问题讨论】:
-
在什么情况下不起作用?您的示例是异步删除 - 您可以添加
now()进行同步操作。 -
对不起,我的意思是添加删除崩溃 - 请参阅上面的崩溃报告的前几行。
-
根据您的代码示例,
ids()的参数是Countstore的列表 - 它应该是您的实体的@Id属性列表,可以是字符串或长整数。跨度>
标签: google-app-engine objectify