2011-01-06 137 views
1

我有一個相當奇怪的事情發生。spring jpa休眠未知實體異常

如果我清理我的目標文件夾並運行我的測試,他們工作正常。如果我不清洗再次運行它,我得到以下錯誤

java.lang.IllegalArgumentException: Unknown entity: com.merc.domain.EventLog 
     at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:675) 
     at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)

任何想法,爲什麼當目標文件夾中有剛編譯的類,這可能發生。我正在使用maven構建

回答

0

對於netbeans用戶來說,這是讓人大開眼界的。

我在NetBeans中有一個maven項目。如果我刪除目標文件夾中的文件,並右鍵單擊Netbeans中的test.java文件並選擇「測試文件」。 Netbeans運行maven命令來構建文件和類路徑,然後使用測試資源中的文件執行測試,這些文件可以正常工作。但是,如果已經編譯了java類,那麼Netbeans將使用classes文件夾中的資源而不是test-classes文件夾運行測試。在我的例子中,classes-folder中的persistence.xml缺少一些細節,我不在乎,因爲我更關注單元測試。

0

在eclipse中同樣的事情,你必須配置build-path,以便eclipse發現它必須在正確的輸出目錄中查找文件。

您還可以配置您的maven構建版本,使其與JUnit查找您的文件的位置相匹配。

+0

我嘗試了相同的測試htat與eclipse中的netbeans失敗,它在eclipse中工作,這是我的一個方法,我發現問題是netbeans而不是其他東西。 – user373201 2011-01-07 14:24:16