删除某种类型的所有实体

Deleting all Entities of a certain type

我正在尝试从我的 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 误认为是实际的 class。我试过在没有别名的情况下做 DELETE FROM MyClassType,但这似乎不起作用。

有什么想法吗?

如果您想删除所有实体,则不需要此处所述的变量 [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?