@SequenceGenerator和allocationSize强制重置

时间:2013-10-09 02:27:50

标签: hibernate sequence-generators

我们使用@SequenceGenerator映射我们的实体,并将allocationSize设置为100. Hibernate适当地生成主键。

我们现在有一个后台作业,必须在表中插入一组新记录。在此过程完成后,我们希望强制Hibernate重置其分配块并再次从序列中读取下一组ID。

否则,hibernate会生成下一组ID(基于分配池中剩余的ID),这些ID可能与进程输入的新记录重叠。

有没有办法清除分配池并强制hibernate重新加载序列nextval?系统范围的设置也可以(即强制重新加载所有序列)

1 个答案:

答案 0 :(得分:0)

关闭你的EntityManagerFactory并再次创建它应该强制hibernate重新加载它的ID生成器:

myEntityManagerFactory.close();
myEntityManagerFactory = Persistence.createEntityManagerFactory(...);