首頁 >資料庫 >mysql教程 >Hibernate 5「未知實體」錯誤:如何正確設定 SessionFactory 進行實體對應?

Hibernate 5「未知實體」錯誤:如何正確設定 SessionFactory 進行實體對應?

Linda Hamilton
Linda Hamilton原創
2024-12-15 03:45:23440瀏覽

Hibernate 5

Hibernate 5:解決整合過程中的「未知實體」錯誤

在嘗試將Hibernate 5.0 與MySQL 整合時,許多開發人員遇到錯誤訊息「org.hibernate.MappingException:未知實體。」此問題特別出現在Hibernate 版本5.0.0 和 5.0.1 中,而先前的版本(例如 4.3.9)可以正常運作。

問題定義

「未知實體」當 Hibernate 無法辨識註解為實體的類別時,會發生錯誤。如果類別的映射元資料未正確配置或新增至 Hibernate 配置中,則可能會發生這種情況。

設定詳細資訊

提供的 Maven 依賴項和 hibernate.cfg。 xml配置看起來是正確的。 User 類別也被註解為實體,並已對應到資料庫表格「User_table」。

原因及解決方案

這個問題的根本原因在於HibernateMain類中創建SessionFactory的過程。在Hibernate 5中,使用以下程式碼來設定和建構SessionFactory:

問題的出現​​是因為在Hibernate 5中使用configuration.buildSessionFactory(sr)會導致設定遺失透過呼叫獲得的對應資訊配置.config()。因此,Hibernate 無法將 User 類別識別為帶有註釋的實體。

解決方案

要解決此問題,有兩種方法:

使用標準設定檔(hibernate.cfg.xml和hibernate.properties)

如果您使用標準配置文件,則可以在不使用 ServiceRegistry 的情況下建立 SessionFactory。

載入屬性

如果您在單獨的檔案中擁有屬性,則可以載入它們並使用下列指令建置 SessionFactory StandardServiceRegistryBuilder。

將屬性作為資源載入

從路徑載入屬性

Hibernate 5 文件中的範例教學(1.1.6 啟動和幫助程式)提供了一個不正確的範例,無法執行正確的設定。 使用不正確的程式碼可能會導致「未知實體」錯誤。

以上是Hibernate 5「未知實體」錯誤:如何正確設定 SessionFactory 進行實體對應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn