You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.7.16出现不存在Bean的DuplicateMappingException问题

解决Spring Boot中Hibernate DuplicateMappingException的问题

针对你遇到的DuplicateMappingException,尽管源码中不存在de.xxxxx.adapter.rest.Mandant类,但Hibernate仍识别到同名实体,可从以下方向排查:

  • 检查JPA实体注解与扫描范围

    • 确认MandantEntity的@Entity注解是否显式指定了name属性。如果未指定,Hibernate会默认使用类名首字母小写(即mandant)作为实体名。
    • 检查项目的@EntityScan或@SpringBootApplication(scanBasePackages = ...)配置,是否误将adapter.rest包纳入了实体扫描范围,导致Hibernate扫描到该包下的非实体类(如DTO、VO)并错误识别为实体。
  • 排查编译后生成的动态类

    • 查看项目编译后的target/classes目录,是否存在de/xxxxx/adapter/rest/Mandant.class文件。这类文件可能由Lombok、MapStruct等字节码增强工具自动生成,哪怕源码中没有对应类。
    • 检查这类工具的配置,是否存在生成类名与现有实体默认名冲突的情况。
  • 检查依赖与打包内容

    • 执行命令jar tf 你的应用jar包路径 | grep Mandant,查看打包后的jar中是否包含de.xxxxx.adapter.rest.Mandant类,可能是第三方依赖或其他模块中引入的。
  • 修改实体名避免冲突

    • 直接给MandantEntity的@Entity注解指定唯一实体名,比如:
      @Entity(name = "mandant_entity")
      public class MandantEntity {
          // ...
      }
      
      强制覆盖默认命名,彻底避免同名冲突。
  • 检查Hibernate命名策略配置

    • 查看application.properties或application.yml中spring.jpa.hibernate.naming相关配置,是否存在自定义的命名策略导致非实体类被映射为mandant实体。

内容的提问来源于stack exchange,提问作者naturzukunft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:17:11