解决JPA遇到The bean 'xxxxx', defined in null, could not be registered. A bean with that name has already ...报错问题

在使用JPA的Repository时候,本地启动服务没问题,放到集成环境上发生了以下报错:

Description:

The bean 'XXXRepository', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

首先考虑是不是真的命名了重复类名的XXXRepository,逐一排查发现并没有,但是发现了一个存疑的地方,在打了@Configuration注解的Config类中,还有这么两个注解:

@EnableCafJpaRepositories("com.XX.XXX.repository")
@EntityScan("com.XX.XXX.entity")

由于我有两个不同工程的服务使用了同一个实体,这两个工程在com.XX.XXX.entity中的Entity类名和包名都是相同的,于是猜测会不会是因为Entity的包名和类名重复了,导致报错,遂将其中一工程包名改为com.XX.XXX.XXXX.repositorycom.XX.XXX.XXXX.entity,将新jar包放到集成环境,启动服务,启动成功!

posted @ 2020-06-13 11:42  还可入梦  阅读(5014)  评论(0编辑  收藏  举报