【问题标题】:Delete data from JPA without using SQL不使用 SQL 从 JPA 中删除数据
【发布时间】:2013-05-28 15:18:35
【问题描述】:

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

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

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

【问题讨论】:

  • 什么是not the entity itself?要将null 设置为所有字段吗?

标签: java jpa entitymanager


【解决方案1】:

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

没有其他方法可以一次删除所有数据,除非加载所有数据并逐个删除。条件查询甚至都不可能,因为它们还不支持删除操作。

【讨论】:

    【解决方案2】:

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

    EntityManager em = ...;
    Query query = em.createNativeQuery ("SELECT * FROM EMP", Employee.class);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多