我发现我的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