我有一个表格,每天都会通过一些批处理过程来填充。
我使用hibernate删除所有记录并通过程序添加新记录。
但在这种情况下,我的 ID(自动递增 PK)每次都会+1。
我知道删除查询只会删除行,不会影响表信息(例如增量计数器)。
我也知道只有 3 种方法可以做到这一点。
- 更改表,并将 AUTO_INCRMENT 设置回 1。
- 截断表
- 删除并再次创建表。
以上内容对我来说都没有用,因为我不想手动执行任何操作。
第一个需要触发一个 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/