解決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包放到集成環境,啟動服務,啟動成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM