OJB框架提供了7种主键管理策略,因为最近在处理问题时遇到,这里介绍几个常用的。
SequenceManagerHighLowImpl
常用策略,会在数据库中建立表OJB_HL_SEQ用来管理ID,通过设置grabSize值来确定缓存与表之间的同步频率(默认值20,当ID增长20时会更新表中的最大ID)。
注:当项目用分布式时会产生各个服务器缓存中的ID不同步,导致插入数据时出现主键冲突。
SequenceManagerInMemoryImpl
当第一次请求ID时会去数据库查询最大id,之后完全使用缓存中的id,工作效率最高。
SequenceManagerNextValImpl
使用数据库中的主键管理序列。
注:当切换管理方式或修改主键管理序列时会生成新的ID序列。