Oracle 休眠生成的序列值与数据库不同步

Oracle 休眠生成的序列值与数据库不同步,oracle,hibernate,sequence,Oracle,Hibernate,Sequence,我使用Oracle作为后端,当我尝试插入任何条目时,hibernate生成的顺序为“50010255”,但在我的db中,SEQ_AD_WORK sequence的当前值仅显示“1000221”,我无法理解这是如何发生的 以下是我的配置 <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.d

我使用Oracle作为后端,当我尝试插入任何条目时,hibernate生成的顺序为“50010255”,但在我的db中,SEQ_AD_WORK sequence的当前值仅显示“1000221”,我无法理解这是如何发生的

以下是我的配置

   <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.query.startup_check">false</prop>
            <!-- 
            <prop key="hibernate.hbm2ddl.auto">create</prop>
            -->
        </props>
    </property>`

   @Id
@Column(name = "ITEM_ID", unique = true, nullable = false,  scale = 0)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_AD_WORK")
 @SequenceGenerator(name="SEQ_AD_WORK", sequenceName="SEQ_AD_WORK")
public Long getAdWorkItemId() {
    return this.adWorkItemId;
}

org.hibernate.dialen.oracle10galent
真的
假的
`
@身份证
@列(name=“ITEM_ID”,unique=true,nullable=false,scale=0)
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“SEQ_AD_WORK”)
@SequenceGenerator(name=“SEQ_AD_-WORK”,sequenceName=“SEQ_-AD_-WORK”)
公共长getAdWorkItemId(){
返回此.adWorkItemId;
}
@Dhirendra:试试这个:-

@SequenceGenerator(name=“SEQ_AD_WORK”,sequenceName=“SEQ_AD_WORK”,allocationSize=1)


SequenceHilGenerator是JPA的默认序列生成器,默认allocationSize值为50,

启用调试后,我可以看到hibernate实际上正在从数据库中获取正确的nextval,在获取后,它正在使用rg.hibernate.id.SequenceHilgenerator转换为其他值。知道为什么会出现这种行为吗?非常感谢,我已经让它工作了。只是无法发布答案,因为我没有足够的声誉发布:)