有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java删除特定类型的所有实体

我试图从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,但这似乎不起作用

有什么想法吗


共 (1) 个答案

  1. # 1 楼答案

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