首頁 > 資料庫 > mysql教程 > Hibernate 5:如何解決「org.hibernate.MappingException:未知實體」?

Hibernate 5:如何解決「org.hibernate.MappingException:未知實體」?

Patricia Arquette
發布: 2024-12-23 10:04:43
原創
794 人瀏覽過

Hibernate 5: How to Solve

Hibernate 5:解決「org.hibernate.MappingException:未知實體」問題

「org.hibernate.MappingException:未知實體」將Hibernate 5 與資料庫系統整合時經常遇到的錯誤源自於設定問題。這種情況專門針對 Hibernate 版本 5.0.0 和 5.0.1。

設定缺陷

問題出在 sessionFactory 建立過程。提供的範例程式碼中的以下程式碼片段說明了該問題:

SessionFactory sf = configuration.buildSessionFactory(sr);
登入後複製

在傳入ServiceRegistry 時嘗試使用buildSessionFactory 方法建立會話工廠時,Hibernate 5 會遺失先前透過以下方式載入的對應資訊:配置方法。

解決方案

修正此問題問題,可以採用建立會話工廠的替代方法,取決於所使用的配置。

載入屬性

對於標準設定檔(hibernate.cfg.xml和hibernate.properties),可以在不使用ServiceRegistry 的情況下建立會話工廠,如圖所示:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
登入後複製

或者,如果屬性儲存在hibernate.properties以外的檔案中,則可以使用 StandardServiceRegistryBuilder 來載入它們:

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-h2.properties")
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
登入後複製

同樣,也可以載入屬性從檔案系統中的特定路徑:

File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties(propertiesPath)
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
登入後複製

以上是Hibernate 5:如何解決「org.hibernate.MappingException:未知實體」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板