Ho alcune classi di entità Java che funzionano bene nel mio codice di produzione. Sto scrivendo un test automatico per questa applicazione in cui sto riutilizzando le stesse classi.OpenJPA dice: Hai fornito le colonne per FooBar ma questa mappatura non può avere colonne in questo contesto
Quando l'applicazione di test sta creando il suo gestore di entità in questo modo:
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();
Le applicazioni genera un messaggio di errore dicendo che:
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
Non capisco davvero il messaggio di errore come lo stesso il bean di entità funziona nell'applicazione in Glassfish e anche il persistence.xml è quasi identico. (Nel test che uso RESOURCE_LOCAL
tx invece di JTA ma dubito che ha relazione con questo errore.
Hai idea di cosa c'è che non va?
Si consiglia di ovide i due mapping XML per questa entità. Probabilmente sono, come hai detto tu, quasi identici e il problema è legato alla mappatura. – dan
Non ci sono mappature xml, utilizzo la configurazione basata su annotazioni e quindi non c'è differenza. – jabal
Il tuo ambiente di test (puoi fornire maggiori dettagli) supporta le annotazioni per JPA? Stai elencando le tue entità nel persistence.xml? – JScoobyCed