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
