oracle存储过程通过hibernate生成的数字比单独使用hibernate生成的数字大

oracle存储过程通过hibernate生成的数字比单独使用hibernate生成的数字大,oracle,hibernate,sequence-generators,Oracle,Hibernate,Sequence Generators,我们有一个存储过程,它为条目id生成数字(entry\u id\u seq)。使用下面的设置,代码生成的数字比直接使用SQL调用的数字要大 例如,下面的代码为id生成一个数字“11195215652”。但是如果我从dual运行select entry_id_seq.NEXTVAL nv,它返回的“32350910”要小得多 @javax.persistence.SequenceGenerator(name = "seq", sequenceName = "entry_id_seq") publi

我们有一个存储过程,它为条目id生成数字(
entry\u id\u seq
)。使用下面的设置,代码生成的数字比直接使用SQL调用的数字要大

例如,下面的代码为id生成一个数字“11195215652”。但是如果我从dual运行
select entry_id_seq.NEXTVAL nv,它返回的“32350910”要小得多

@javax.persistence.SequenceGenerator(name = "seq",
sequenceName = "entry_id_seq")
public class SomeClassimplements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
    @Column(name = "ID")
    private Long id;
我尝试了下面的建议

@javax.persistence.SequenceGenerator(name = "seq",
sequenceName = "entry_id_seq", allocationSize = 1, initialValue= 1)
但它给了我以下错误:

Caused by: org.hibernate.HibernateException: increment size cannot be less than 1
    at org.hibernate.id.enhanced.OptimizerFactory$LegacyHiLoAlgorithmOptimizer.<init>(OptimizerFactory.java:336)
    at org.hibernate.id.SequenceHiLoGenerator.configure(SequenceHiLoGenerator.java:64)
    at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:110)
原因:org.hibernate.hibernateeexception:增量大小不能小于1
位于org.hibernate.id.enhanced.OptimizerFactory$LegacyHiLoAlgorithmOptimizer。(OptimizerFactory.java:336)
在org.hibernate.id.SequenceHiLoGenerator.configure(SequenceHiLoGenerator.java:64)上
位于org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:110)
根据以下讨论:

解决办法是:
在SequenceGenerator注释中,添加
allocationSize=1,initialValue=1

您使用的是什么版本的hibernate?如果<3.5.3,则检查此项

它似乎会影响配置了注释的allocationSize=1的旧式生成器


决议:1。配置为使用新生成器,2.升级,3.手动修补您的版本

我尝试了上面的其他参数,但得到了以下错误。原因:org.hibernate.hibernate异常:org.hibernate.id.enhanced.OptimizerFactory$LegacyHiLoAlgorithmOptimizer处的增量大小不能小于1。(OptimizerFactory.java:336)org.hibernate.id.SequenceHilGenerator.configure(SequenceHilGenerator.java:64)位于org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:110)