我正在开发一个产品,将支持多个数据库引擎(Oracle、MSSQL、MySQL)。对于Oracle,我更倾向于使用序列(Sequences),而不是序列表(Sequence table),以避免在高负载环境下可能出现的并发和锁定问题,但其他数据库引擎不支持序列。此外,我更倾向于为每个表使用一个序列,而不是全局序列(例如
hibernate_sequence
),因此@GeneratedValue(strategy = GenerationType.AUTO)
无法使用。有没有办法在运行时动态选择策略?
@SequenceGenerator( ..., allocationSize=blah )
- Steve Ebersolestrategy=SEQUENCE
+@SequenceGenerator
时,如何将prefer_sequence_per_entity
参数传递给SequenceStyleGenerator
?是否有比回退到@GeneratedValue(generator="mygen")
然后@GenericGenerator(name="mygen", strategy="org.hibernate.id.enhanced.SequenceStyleGenerator", parameters=...)
更短的方法? - Marko Topolnik