0

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

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

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

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

4

1 回答 1

1

关闭您的 EntityManagerFactory 并再次创建它应该会强制休眠重新加载其 ID 生成器:

myEntityManagerFactory.close();
myEntityManagerFactory = Persistence.createEntityManagerFactory(...);
于 2013-10-09T03:29:03.453 回答