Hi all,
I am testing OpenJPA 4.2.0-SNAPSHOT against Syncope master branch, which is 
currently using Hibernate ORM 7.4.

The first error I am encountering is related to [1] e.g.

@Convert(converter = PlainAttrListConverter.class)
private final List<PlainAttr> plainAttrs = new ArrayList<>();

where PlainAttr [2] is a Java bean configured for JSON serialization and 
PlainAttrListConverter[3] is an AttributeConverter leveraging Jackson for this 
purpose.

This works fine under Hibernate, but throws the following exception with 
OpenJPA 4.2.0-SNAPSHOT:

<openjpa-4.2.0-SNAPSHOT-ra2c8177 fatal user error> org.apache.openjpa.util.MetaDataException: 
You have supplied columns for 
"org.apache.syncope.core.persistence.jpa.entity.JPARealm.plainAttrs<element:class 
org.apache.syncope.core.persistence.api.entity.PlainAttr>", but this mapping cannot have 
columns in this context.
        at 
org.apache.openjpa.jdbc.meta.MappingInfo.assertNoSchemaComponents(MappingInfo.java:384)
        at 
org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.map(HandlerFieldStrategy.java:84)
        at 
org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:148)
        at 
org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:87)
        at 
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:519)
        at 
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:470)
        at 
org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(ClassMapping.java:1066)
        at 
org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRepository.java:420)
        at 
org.apache.openjpa.meta.MetaDataRepository.preMapping(MetaDataRepository.java:780)
        at 
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:667)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:427)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:398)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getCachedSuperclassMetaData(PersistenceMetaDataDefaults.java:355)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineAccessType(PersistenceMetaDataDefaults.java:381)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:317)
        at 
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:933)
        at 
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:918)
        at 
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:828)
        at 
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:582)
        at 
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:440)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:267)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:595)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:406)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:398)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getCachedSuperclassMetaData(PersistenceMetaDataDefaults.java:355)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineAccessType(PersistenceMetaDataDefaults.java:381)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:317)
        at 
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:933)
        at 
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:918)
        at 
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:828)
        at 
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:582)
        at 
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:440)
        at 
org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:267)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:595)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:406)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:398)
        at 
org.apache.openjpa.persistence.meta.MetamodelImpl.<init>(MetamodelImpl.java:91)
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:474)
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:81)


Is there anything obvious I am missing?

TIA
Regards.

[1] 
https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java#L83-L84
[2] 
https://github.com/apache/syncope/blob/master/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/PlainAttr.java
[3] 
https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/converters/PlainAttrListConverter.java

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA
https://about.me/ilgrosso

Reply via email to