java - OpenJPA 说 : You have supplied colums for FooBar but this mapping cannot have columns in this context

标签 java jpa openjpa

我有一些 Java 实体类在我的生产代码中运行良好。我正在为此应用程序编写一个自动化测试,我在其中重用了完全相同的类。

当测试应用程序以这种方式创建其实体管理器时:

 Properties props = new Properties();
 props.setProperty("provider", "org.apache.openjpa.persistence.PersistenceProviderImpl");
 props.setProperty(...);      
 EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("foobar-upgrade-restful-test", props);

 EntityManager entityManager = entityManagerFactory.createEntityManager();

应用程序抛出一条错误消息,告知:

Caused by: <openjpa-2.2.0-r422266:1244990 fatal user error> org.apache.openjpa.persistence.ArgumentException: You have supplied columns for "com.foo.bar.server.commontypes.job.CompositeJob", but this mapping cannot have columns in this context.
    at org.apache.openjpa.jdbc.meta.MappingInfo.assertNoSchemaComponents(MappingInfo.java:382)
    at org.apache.openjpa.jdbc.meta.strats.FlatClassStrategy.map(FlatClassStrategy.java:51)
    at org.apache.openjpa.jdbc.meta.ClassMapping.setStrategy(ClassMapping.java:392)
    at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:56)
    at org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRepository.java:411)
    at org.apache.openjpa.meta.MetaDataRepository.preMapping(MetaDataRepository.java:762)
    at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:651)
    ... 72 more

我不太理解错误消息,因为同一个实体 bean 在 Glassfish 下的应用程序中工作,并且 persistence.xml 也几乎相同。 (在测试中,我使用 RESOURCE_LOCAL tx 而不是 JTA,但我怀疑它与此错误有关。

你知道哪里出了问题吗?

最佳答案

该错误表明您为 com.foo.bar.server.commontypes.job.CompositeJob 提供的映射信息存在问题。

我猜测它适用于 JTA 但不适用于本地资源的原因很可能与元数据在不同环境中加载/处理的方式有些奇怪有关。如果您发布实体中的相关映射数据,将会很有帮助。

关于java - OpenJPA 说 : You have supplied colums for FooBar but this mapping cannot have columns in this context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527269/

相关文章:

java - Spring 中具体类条件实例化的接口(interface)

jpa-2.0 - 没有可用的持久性提供程序

java - 级联持久化无法为新实体生成主键,为什么?

java - BigDecimal,精度和规模

spring - Maven 依赖 - org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Properties 上的 NoSuchMethodError

java - 返回具有 map 子集的实体

java - 关闭 IO 的更好方法是什么?

java - 系统时间代表什么?

java - Java reduce方法的 'break out'如何处理

java - @ManyToOne 关系的 PK 未插入