【问题标题】:Delete Derby entries删除 Derby 条目
【发布时间】:2023-03-09 07:40:02
【问题描述】:

我使用 JPA 通过 eclipse 链接将数据添加到 Derby DB,并且当 ID 重复时。

我遇到了错误,运行时(带有代码)有一种方法可以简单地删除所有表条目。

每次调用程序时,我都不需要旧条目,只需要新条目。

我试过了

factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager entityManager = factory.createEntityManager();

entityManager.getTransaction().begin();

Query query = entityManager.createQuery("SELECT p FROM Job p ");

List resultList = query.getResultList();

for (Object result : resultList) {
    entityManager.remove(result);
}

entityManager.getTransaction().commit();
entityManager.close();

但在这里我之前使用过查询,我不想这样做,我想删除所有条目,我不在乎之前有什么。

【问题讨论】:

    标签: java jpa eclipselink derby


    【解决方案1】:

    您可以执行删除查询,或者配置持久性单元以在部署持久性单元时重新创建表。

    看, http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/p_ddl_generation.htm#BABHEJJI

    【讨论】:

      【解决方案2】:

      您可以在应用程序每次启动时在运行时使用 SQL DELETE 查询。如果您不发布一些代码,我们将无能为力。

      编辑:

      您可以在某个较早的事务或查询之前的同一事务中执行如下查询:

      int deletedCount = entityManager.createQuery("DELETE FROM Job").executeUpdate();
      

      【讨论】:

      • 嗨,我尝试过你的建议,但我得到了错误,这是我的新代码 String className = object.getClass().getName(); entityManager.getTransaction().begin(); entityManager.createQuery("DELETE FROM " + className).executeUpdate(); entityManager.persist(对象); entityManager.getTransaction().commit();
      • 错误是:javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DatabaseException 内部异常: java.sql.SQLException: 无法使用类加载器 sun.misc.Launcher$AppClassLoader@558fe7c3 启动数据库“/home/vogella/databases/simpleDb”,有关详细信息,请参阅下一个异常。错误代码:org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:602) 处的 40000
      • 这很奇怪,因为当我在调试器上运行它时,它运行良好,当我正常运行它时,我收到了这条消息......
      • 您的错误应该发生在 factory.createEntityManager();并且与查询无关。检查您的 persistence.xml 是否正确,并且您可以连接到 derby 数据库。否则显示完整的异常堆栈跟踪以及您如何配置数据库以启动。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多