我们使用@SequenceGenerator映射我们的实体,并将allocationSize设置为100. Hibernate适当地生成主键。
我们现在有一个后台作业,必须在表中插入一组新记录。在此过程完成后,我们希望强制Hibernate重置其分配块并再次从序列中读取下一组ID。
否则,hibernate会生成下一组ID(基于分配池中剩余的ID),这些ID可能与进程输入的新记录重叠。
有没有办法清除分配池并强制hibernate重新加载序列nextval?系统范围的设置也可以(即强制重新加载所有序列)
答案 0 :(得分:0)
关闭你的EntityManagerFactory并再次创建它应该强制hibernate重新加载它的ID生成器:
myEntityManagerFactory.close();
myEntityManagerFactory = Persistence.createEntityManagerFactory(...);