【发布时间】:2019-04-24 15:00:57
【问题描述】:
我正在使用 Hibernate 5.3.7。将hibernate.id.new_generator_mappings默认值从true设置为false后,唯一约束错误得到解决。
但面对不同的 id 创建行为:
Hibernate 生成的Id = ( 50 * (start_with) Oracle 序列的值) + 1
这是 Hilo 算法的默认行为吗?
提前致谢。
建议的方法 - https://hibernate.atlassian.net/browse/HHH-10983
嗨洛:https://vladmihalcea.com/the-hilo-algorithm/
我可以读取帽子 hi 和 lo 值将根据 [(hi -1) * incrementSize) + 1, (hi * incrementSize)) 默认情况下,incrementSize 为 50。
将 start_with 值乘以 50 的原因是什么?
例如:
我有一个序列起始值为 5000 的表
那么我的 Hibernate 应用程序将从 (5000 * 50) = 250000 开始
池化策略 - 以唯一约束异常结束
还有:Oracle 序列如何在使用的 id 上进行通信?
根据本网站,id 的差距是正常的:
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:369390500346406705
【问题讨论】:
标签: hibernate