2011-01-06 139 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