【问题标题】:JPA Hibernate Maven testing --> unknown classJPA Hibernate Maven 测试 --> 未知类
【发布时间】:2011-09-12 12:22:44
【问题描述】:

我正在尝试运行一个使用 JPA 和 Hibernate 的简单 dataImport 类。

如果我上课,我总是会遇到以下错误:

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/test/java/ 文件夹中,我在 src/test/resources/ 中有一个 service-config.xml,在 src/test/resources/META-INF 中也有一个 persistence.xml /.

如果我在 src/main/java/... 文件夹中运行该类,它就可以工作。但是如果我想在 src/test/java/ 中有这个类,它没有。

我做错了什么?

非常感谢!

【问题讨论】:

标签: java hibernate maven jpa-2.0


【解决方案1】:

您正在从自己的 main 方法运行代码,我猜这意味着它不是由 maven 运行的。 test 中的代码不包含在 maven 生成的工件中,它仅包含在运行单元测试的 maven 测试阶段。

如果您使用的是 maven,为什么不简单地创建 JUnit 测试,maven 将作为构建过程的一部分运行,而不是自己滚动。

【讨论】:

  • 好的,现在我通过一个由 maven 启动的 JUnit 测试来运行这个类。但我仍然有 java.lang.IllegalArgumentException: Unknown entity: ch.itartis.relman.entities.code.ReferenceCode 问题。我认为可能有问题,因为“ReferenceCode”-Class 位于另一个项目中。如何确保我的 hibernate 从其他项目中找到类?
【解决方案2】:

完成 Robin 的回答:如果您使用 exec:java 运行课程,请将 classpathScope 设置为 test,一切都会好起来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多