我正在使用EJB3,JBoss AS 4.2.1和Oracle 10g。事情是每次我部署到AS时序列都被破坏了。例如:当我从toad查看序列时,它的最后一个值是41,但是为新条目设置的实际id是1050。 您对此问题有任何想法或已知错误吗? 感谢。
答案 0 :(得分:4)
序列不是无间隙!! 这不是一个错误。
请参阅:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:513022131111
答案 1 :(得分:1)
Oracle从内存中缓存序列号以便更快地访问,因此存在差距。它的预期行为。
您可以执行ALTER SEQUENCE命令将计数器重置为正确的值。
答案 2 :(得分:0)
感谢您的回复。我的问题是由于我的实体的默认allocationSize引起的。 allocationSize的默认值是50.也就是说,我相信,jboss app正在向每个50个实体创建oracle db。 oracle中序列的缓存值为20.这意味着当我将1000条记录插入数据库时,序列会增加其nextVal 20。