Hibernate 5:解決「org.hibernate.MappingException:未知實體」錯誤
在將HiberMynate 5.0 與您可能整合時,會遇到錯誤「org.hibernate.MappingException:未知實體。」這個問題特別出現在Hibernate 版本5.0.0 和5.0.1 中,而Hibernate 4.3.9 執行時不會出現此問題。
錯誤原因
在 Hibernate 5 中,Hibernate 讀取其配置的方式發生變化導致了此錯誤。具體來說,使用 StandardServiceRegistryBuilder 建構 SessionFactory 時,無法正確應用從 hibernate.cfg.xml 讀取的設定資訊。
解決方案
要解決此錯誤,有幾種需要考慮的方法:
使用基本設定方法
對於更簡單的解決方案,請避免使用StandardServiceRegistryBuilder,而是直接從Configuration 對象創建會話工廠:
<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>
加載屬性
如果您在hibernate.properties 之外定義了其他屬性,則可以使用StandardServiceRegistryBuilder 加載它們:
<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .configure() .loadProperties("hibernate-h2.properties") .build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
使用Fluent-Hibernate
您還可以利用Fluent-hibernate 函式庫獲得更方便的方法,如GitHub 專案「fluent-hibernate-mysql」所示。
其他注意事項
請注意,第 1.1.6 節中的 Hibernate 5 教學範例是不正確的。建置 SessionFactory 時無法載入正確的配置,導致映射問題。
以上是如何使用 MySQL 修復 Hibernate 5 中的「org.hibernate.MappingException:未知實體」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!