1

我熟悉以下从实体中删除数据(只是数据,而不是实体本身)的方法

entityManager.getTransaction().begin();
entityManager.createQuery("DELETE FROM " + className)
                    .executeUpdate();
entityManager.getTransaction().commit();

还有另一种方法可以做到这一点,例如提供实体名称,然后删除所有数据。

4

2 回答 2

2

您在代码中使用的不是 SQL,而是 JPQL,JPA 查询语言。

除了加载所有数据并一一删除之外,没有其他方法可以一次删除所有数据。标准查询甚至不可能,因为它们还不支持删除操作。

于 2013-06-02T07:32:42.873 回答
1

好吧..在这种情况下,NativeSQLQuery 和 JPQL 都解析为同一件事。你所做的是JPQL方式。下面你可以写一个 nativeSQLQuery

EntityManager em = ...;
Query query = em.createNativeQuery ("SELECT * FROM EMP", Employee.class);
于 2013-06-02T09:19:07.967 回答