我们有一个应用程序,我们使用表sequencing.Everytime使服务器退回,表acts中的序列号(这里是SEQ_R) weird.The序列号递增90000,有时递增50,其中递增应为1。
我不得不提一下,我们使用MSSQl服务器。
在我们的sessions.xml
<sequencing>
<default-sequence xsi:type = "table-sequence">
<name> Custom </name>
<preallocation-size> 80000 </preallocation-size>
<table> SEQ </table>
<name-field> SEQ_N </name-field>
<counter-field> SEQ_R </counter-field>
</default-sequencing>
</sequencing>在我们的mappings.xml
<toplink:sequencing>
<toplink:default-sequence xsi:type = "toplink:native">
<toplink:preallocation-size> 80000 </toplink:preallocation-size>
</toplink:default-sequence>
</toplink:sequencing>发布于 2012-01-06 23:57:56
预分配的整个思想是toplink将数据库中的序列递增80000,并在内存中为下一个需要新id的80000项保留一个计数器。如果退回服务器,内存中的计数器将丢失,toplink将再次读取并更新下一批处理的数据库序列。
如果您确实希望增量为1,则可以在MSSQL中使用标识列。请参阅Toplink Native Sequencing With a Non-Oracle Database Platform
https://stackoverflow.com/questions/8753509
复制相似问题