2011-06-10 91 views
0

我想運行一個簡單的使用JPA和Hibernate的dataImport類。JPA休眠Maven測試 - >未知類

如果我跑我的課,我總是有以下錯誤:

Exception in thread "main" java.lang.IllegalArgumentException: Unknown entity: ch.itartis.relman.entities.code.ReferenceCode 
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:675) 
    at ch.itartis.relman.service.test.dataimport.DataImport.doSave(DataImport.java:111) 
    at ch.itartis.relman.service.test.dataimport.DataImport.main(DataImport.java:43) 

我的班級位於src /測試/ JAVA /文件夾,我src/test下一個服務-config.xml中/ resources /,並且在src/test/resources/META-INF /中也有一個persistence.xml。

如果我在src/main/java/...文件夾中運行該類,它將起作用。但是如果我想在src/test/java /中有這個類,它不會。

我在做什麼錯?

非常感謝!

+0

'跑我的班'是什麼意思?你如何運行它?問題可能是/ src/test/java不在你的類路徑中。 – Simeon 2011-06-10 13:33:39

+1

查看http://stackoverflow.com/questions/4885836/no-autodetection-of-jpa-entities-in-maven-verify – axtavt 2011-06-10 14:02:21

回答

3

您正在運行您自己的主要方法中的代碼,我猜測這意味着它不會由maven運行。測試中的代碼不作爲maven生成的工件的一部分包含在內,它僅在運行單元測試的mavens測試階段包含。

如果您使用的是maven,爲什麼不簡單地創建JUnit測試,maven將作爲構建過程的一部分運行,而不是自己滾動。

+0

好的,現在我通過由maven啓動的JUnit測試來運行該類。但我仍然有java.lang.IllegalArgumentException:未知實體:ch.itartis.relman.entities.code.ReferenceCode問題。我認爲可能有問題,因爲「ReferenceCode」類位於另一個項目中。我如何確保我的hibernate從另一個項目中找到類? – 2011-06-14 14:06:43