首頁 > Java > java教程 > 主體

與 MySQL 整合時如何修復 Hibernate 5 中的「MappingException: Unknown Entity」?

Barbara Streisand
發布: 2024-10-31 02:50:31
原創
731 人瀏覽過

How to Fix

Hibernate 5: MappingException: Unknown Entity

在Hibernate 5 中,嘗試時可能會發生什麼用MySQL 整合。此問題特定於 Hibernate 5.0.0 和 5.0.1 版本,並在後續版本中解決。

原因

此錯誤源自於 Hibernate 5 的改變行為。在早期版本中,即使在建置 ServiceRegistry 之後,設定資訊仍保留在 Configuration 中。但是,在 Hibernate 5 中,當呼叫 configuration.buildSessionFactory(sr) 時,設定會遺失此資訊。

修正

1。標準設定檔:

如果使用標準hibernate.cfg.xml 和hibernate.properties 文件,則直接建立會話工廠:

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>
登入後複製

2.載入屬性:

如果屬性儲存在不同的檔案中,請使用StandardServiceRegistryBuilder:

將屬性作為資源載入:

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

從檔案路徑載入屬性:

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

3.使用Fluent Hibernate 公用程式:

有關使用此方法的完整範例,請參閱🎜>

有關使用此方法的完整範例,請參閱GitHub 上的Fluent-hibernate-mysql 專案。

4.避免不正確的Hibernate 5 教學建議:

<code class="java">return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );</code>
登入後複製
Hibernate 5 教學中提供的錯誤程式碼片段:

未執行正確的配置,應避免。

以上是與 MySQL 整合時如何修復 Hibernate 5 中的「MappingException: Unknown Entity」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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