2015-02-27 3 views
0

Я пытаюсь удалить все сущности определенного типа из хранилища данных в моем приложении GAE. У меня есть следующие строки:Удаление всех объектов определенного типа

em.createQuery("DELETE m FROM "+UpdateMessage.class.getSimpleName()+" m").executeUpdate(); 

Я вижу следующее исключение:

Unable to update most recent message in datatstore: Candidate class could not be found: DELETE 

Я предполагаю, что я не делаю право наложения спектров, как это перепутывающий DELETE для фактического класса , Я попробовал просто сделать DELETE FROM MyClassType без псевдонима, но это, похоже, не сработало.

Любые идеи?

ответ

0

Если вы хотите удалить все объекты, вам не понадобится переменная, как описано здесь [1].

Кроме того, вы используете метод getSimpleName(), я мало знаю о JPA, но все фрагменты кода, которые я видел, используют метод getName(). См. Различия здесь [2]. Таким образом, запрос будет выглядеть так:

em.createQuery("DELETE FROM " + UpdateMessage.class.getName()).executeUpdate(); 

[1] http://www.objectdb.com/java/jpa/query/jpql/delete

[2] What is the difference between canonical name, simple name and class name in Java Class?

Смежные вопросы