我發現我的JPA項目中使用eclipselink,spring和db的序列不是連續生成的。 JPA似乎檢索下一個緩存的序列號,即使當前的序列號沒有運行。奇怪的DB2 JPA序列生成
我的順序是由本聲明
create or replace sequence MYSCHEMA.SEQ_MY_ID
as integer
start with 1 increment by 1;
和序列緩存中創建爲20
我的應用程序將需要添加my_id列每次運行兩個序列號。我希望是這樣的順序:
RUN #1
1
2
RUN #2
3
4
但實際上,這樣生成的序列號:
RUN #1
1
21
RUN #2
2
3
RUN #3
22
41
有同時請求序列運行兩個線程。但是即使在多線程環境下,序列也應該連續生成。爲什麼使用下一個緩存值?我怎麼弄清楚是什麼罪魁禍首? DB2,JPA或Spring。
我測試過了。 「訂單」條款解決了我的問題。 – Bewang 2011-03-18 21:46:57