Hibernate MappingException: Hibernate 5 中的未知實體
將Hibernate 5.0 與Myal SQL. .MappingException” :未知實體。 」此問題在5.0.0 和5.0.1 版本中普遍存在,但在Hibernate 4.3.9 中不存在。
診斷
問題源自於Hibernate中的不符5 配置代碼。 「HibernateMain.java」類別中的以下程式碼片段是有問題的:
Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); SessionFactory sf = configuration.buildSessionFactory(sr);
在Hibernate 5 中,使用configuration.buildSessionFactory(sr) 會導致在configuration.configure() 期間取得的對應資訊丟失。
解決方案
要解決此問題,請使用以下方法無需ServiceRegistry:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
屬性的其他載入選項
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 教學 1.1.6。以上是為什麼 Hibernate 5.0 會拋出「未知實體」MappingException,以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!