2017-08-12 50 views
0

我寫我的第一個Hibernate項目完全一樣一樣的我的老師沒有,但我得到這個異常:java.lang.NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax/persistence/Index;

> Exception in thread "main" java.lang.ExceptionInInitializerError 
> Caused by: javax.persistence.PersistenceException: No Persistence 
> provider for EntityManager named Sharif: Provider named 
> org.hibernate.jpa.HibernatePersistenceProvider threw unexpected 
> exception at create EntityManagerFactory: java.lang.NoSuchMethodError 
> java.lang.NoSuchMethodError: 
> javax.persistence.Table.indexes()[Ljavax/persistence/Index; 

,我在persistence.xml文件中寫道持久性單元名稱

<persistence-unit name="Sharif" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 

,我也在我的實體類中使用實體註釋(Person) 我檢查幾乎所有與我的問題有關的問題,但我無法解決它。 項目依賴:
enter image description here

+0

[沒有提供給EntityManager的持久性提供者的可能的副本](https://stackoverflow.com/questions/1158159/no-persistence-provider-for-entitymanager-named) – Jakob

+0

錯誤消息說'Provider named > org .hibernate.jpa.HibernatePersistenceProvider拋出意外的';這導致我相信提供者被正確地指定了,並且問題在其他地方。 我敢打賭,你的類路徑中存在衝突的hibernate/jpa提供者版本。你可以顯示你所有的項目依賴項列表嗎? – Andrei

+0

@Jakob,這不是你提到的問題的重複。至多,我認爲這是一個重複/輕微變化的這一個: https://stackoverflow.com/questions/20734540/nosuchmethoderror-in-javax-persistence-table-indexesljavax-persistence-index 如果你看看錯誤消息您會看到它正確檢測到指定的提供程序;該消息有點誤導。 – Andrei

回答

0

我創建了一個新的項目,並複製我的代碼在裏面。我想我的問題是因爲現有的2版本hibernate-core.jar,這個文件hibernate-core-5.2.10.Final.jarhibernate-core-5.2.1.Final.jar。我刪除了額外的jar文件,並將新的lib文件夾複製到新項目中併成功運行。