java - 使用代码进行 hibernate 重置(从0开始PK)

标签 java mysql hibernate primary-key

我有一个表格,每天都会通过一些批处理过程来填充。

我使用hibernate删除所有记录并通过程序添加新记录。

但在这种情况下,我的 ID(自动递增 PK)每次都会+1。

我知道删除查询只会删除行,不会影响表信息(例如增量计数器)。

我也知道只有 3 种方法可以做到这一点。

  1. 更改表,并将 AUTO_INCRMENT 设置回 1。
  2. 截断表
  3. 删除并再次创建表。

以上内容对我来说都没有用,因为我不想手动执行任何操作。

第一个需要触发一个 DDL 查询,我认为通过 hibernate 是不可能的。 第二个与上面相同+一旦我们重新启动tomcat - hibernate.cfg.xml 将执行,以上问题就可以解决。所以这也是不可能的。 第三点同上(第二点)。

请有人建议有什么方法可以做到这一点吗?

最佳答案

1st one need fire a DDL query which I think not possible through hibernate.

为什么这必须通过 Hibernate 来完成?只需获取您的数据源并执行您的 DDL。假设 Hibernate 正在使用的数据源具有适当的权限。否则定义第二个数据源,允许使用 ALTER TABLE。

关于java - 使用代码进行 hibernate 重置(从0开始PK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262410/

相关文章:

java - PHP 银行应用程序

Java : Multi-threaded linked list access synchronization

php - 通过通用表以正确的方式建立关系

java - 默认值在 hibernate 中不起作用

java - 在 hyperjaxb 中自定义 hibernate 属性

java - 找不到 OffLine WLST 类

java - 使用字母数字值对 Java 中的自定义对象列表进行排序

mysql - 将真实的值(value)观组合在一起

php - JoomLa 更新查询不起作用

java - JPA : Can we use different collection type on either sides of ManyToMany relationship?