Spring5.3.29与Hibernate5.3.29.Final升级后seqGenerator重复警告如何解决
解决Spring 5.3.29 + Hibernate 5.3.29.Final重复WARN日志(HHH000069)的问题
这个HHH000069: Duplicate generator name seqGenerator警告的核心原因是Hibernate在元数据收集阶段检测到重复命名的标识符生成器,以下是具体解决步骤:
1. 排查实体类的注解定义
- 遍历所有实体类,查找使用
@SequenceGenerator(name = "seqGenerator")的代码,确认是否存在多个实体类重复定义了同名生成器,且未通过sequenceName、schema或catalog属性区分不同序列。 - 处理方式:
- 给每个生成器设置唯一名称,比如
userSeqGenerator、orderSeqGenerator; - 将公共的序列生成器定义抽至父类或包级别的
@GenericGenerator/@SequenceGenerator中,子类直接引用即可。
- 给每个生成器设置唯一名称,比如
2. 检查Hibernate XML映射文件
- 若项目使用XML配置实体映射,查找所有
<generator name="seqGenerator">或<sequence-generator name="seqGenerator">的配置,确认是否在多个映射文件中重复声明。 - 处理方式:移除重复的生成器定义,统一在全局映射文件中声明公共生成器,或为每个生成器重命名唯一标识。
3. 排查依赖与类加载重复问题
- 版本升级后可能出现依赖重复引入,导致Hibernate重复扫描同一实体类。比如多模块项目中重复引入实体类模块,或Spring组件扫描范围过大覆盖了重复的类路径。
- 处理方式:
- 检查Maven/Gradle依赖,移除重复的实体类模块或Hibernate相关依赖;
- 调整Spring的
@ComponentScan范围,避免重复扫描同一实体类所在的包。
4. 临时屏蔽警告(非根治方案)
- 若暂时无法定位根源且不影响业务运行,可通过日志配置将该类的警告屏蔽:
示例(Logback配置):<logger name="org.hibernate.boot.internal.InFlightMetadataCollectorImpl" level="ERROR"/>
内容的提问来源于stack exchange,提问作者Kakashi
相关产品推荐
相关产品推荐

