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