問題:
在Eclipse下報如下錯誤:bean named ‘entityManagerFactory’ that could not be found。
發生場景:
導入JPA依賴包後, 在Service中使用EntityManager 操作數據庫,容器啓動失敗,在Eclipse中啓動報以上錯誤信息。
@PersistenceContext
protected EntityManager em;
原因及解析:
查看相關設置都沒有問題,無奈之下,切換一下啓動方式, 在命令行使用Maven命令啓動。命令行切換到項目的根目錄,執行如下命令:
mvn spring-boot:run
控制檯打印了以下錯誤信息。
[ERROR] error reading D:\inssoftware\apache-maven-3.5.3\repository\org\hibernate \hibernate-core\5.4.12.Final\hibernate-core-5.4.12.Final.jar; invalid LOC header (bad signature)
原來是 invalid LOC header 的錯誤。
注意該原因是導致 bean named ‘entityManagerFactory’ that could not be found的原因之一,其他原因的處理依實際情況而定。
解決方法:
參照 invalid LOC header的解決方法,
在本地Maven庫找到該jar 的目錄, 刪除之後 使用mvn eclipse:eclipse
或 mvn install
等命令重新下載。