2 回答

TA贡献1847条经验 获得超11个赞
我发现这是 hibernate 5.3 的新行为:
在SequenceStyleGenerator.determineSequenceName添加代码的方法中:
final Boolean preferGeneratorNameAsDefaultName = serviceRegistry.getService( ConfigurationService.class )
.getSetting( AvailableSettings.PREFER_GENERATOR_NAME_AS_DEFAULT_SEQUENCE_NAME, StandardConverters.BOOLEAN, true );
if ( preferGeneratorNameAsDefaultName ) {
final String generatorName = params.getProperty( IdentifierGenerator.GENERATOR_NAME );
if ( StringHelper.isNotEmpty( generatorName ) ) {
fallbackSequenceName = generatorName;
}
}
新的默认行为是使用生成器名称作为序列名称。所以从hibernate 5.2迁移到5.3有两种可能:
将生成器名称更改为序列名称
通过在休眠配置(或生成器参数)中设置hibernate.model.generator_name_as_sequence_name为不使用生成器名称,恢复到休眠 5.2- 行为false
添加回答
举报