2011-06-10 90 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