首頁  >  文章  >  Java  >  與 MySQL 整合時如何修復 Hibernate 5 中的「MappingException: Unknown Entity」?

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

Barbara Streisand
Barbara Streisand原創
2024-10-31 02:50:31730瀏覽

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中文網其他相關文章!

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