1

我使用 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();

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

4

2 回答 2

1

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

编辑 :

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

int deletedCount = entityManager.createQuery("DELETE FROM Job").executeUpdate();
于 2013-01-23T13:51:10.990 回答
1

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

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

于 2013-01-23T14:29:53.390 回答