Я читаю множество лиц из GAE с помощью объективизации:Как удалить набор лиц, использующих объективизации .ids()
List<CountStore> myList = ofy().load().type(CountStore.class).list();
Я затем процеживают и удалить некоторые из элементов MyList. Теперь я хочу удалить все идентификаторы в оставшемся списке. Я думаю, что правильный подход заключается в использовании .ids():
ofy().delete().type(CountStore.class).ids(myList);
Но это не работает - он выходит из строя (см ниже), так как он ожидает MyList быть Long или строка. Может ли кто-нибудь посоветовать лучший способ удалить набор сущностей?
Спасибо!
java.lang.IllegalArgumentException: id '[email protected]' 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()' для синхронной операции. – tx802
Извините, я хотел добавить, что сбой при удалении - см. Выше для первых нескольких строк отчета о сбоях. –
Ваш аргумент 'ids()' является списком 'Countstore' в соответствии с вашим примером кода - это должен быть список свойств' @ Id' ваших сущностей, которые будут строками или длинными. – tx802