我使用Oracle作爲後端,當我嘗試插入任何條目時,休眠生成的序列的順序是「50010255」,但在我的數據庫中當前值爲SEQ_AD_WORK序列只顯示「1000221」我無法弄清楚如何發生。HiberNate生成的序列值不與數據庫同步
以下是我的配置
<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;
}
啓用調試後,我可以看到,hibernate實際上是從數據庫獲取正確的nextval後,通過獲取它轉換爲其他值使用rg.hibernate.id.SequenceHiLoGenerator任何想法爲什麼這種行爲? – dpsdce