【发布时间】:2018-06-06 23:01:41
【问题描述】:
我在使用 Hibernate javax.persistence.SequenceGenerator.allocationSize() 属性时遇到问题。当它设置为 1 时,我在向数据库插入大量记录时会遇到性能问题。否则,当我将其设置为默认值 (50) 甚至更高的值时,我会收到异常,即具有指定标识符的实体已经存在!
最大的问题是很多开发者使用共享数据库,所以生成的标识符确实有可能不会同步。
另一方面,我注意到使用“INCREMENT BY 1”创建的 Oracle 序列。可能根据allocationSize设置这个可以解决问题吗?
我使用的是 WildFly 10.1(所以 Hibernate 版本是 5.0.10)和 Oracle 12c (12.2.0.1)。
提前感谢您的建议!
【问题讨论】:
-
是的。如果它们不一样,你就会遇到这个问题。 Increment by 是序列的数据库设置,而 allocationSize 属性是 JPA 值,它告诉它可以使用多少个数字,然后必须返回序列以获得更多。
标签: java oracle hibernate jpa ojdbc