在使用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.repository和com.XX.XXX.XXXX.entity,將新jar包放到集成環境,啟動服務,啟動成功!
