unidirectional @oneToMany without joinTable in openJpa 2 -


i trying create unidirectional onetomany mapping in openjpa 2.3.0, want define column name hold foreighn key on source table. far know in jpa 2.0 can done follows :

@entity public class source {       private list<target> targets = new arraylist<>();       @onetomany     @joincolumn(name="source_fk")     public list<target> gettargets() {         return targets;     } } 

but following exception :

 <openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.persistence.argumentexception: have supplied columns "source.targets", mapping cannot have columns in context. @ org.apache.openjpa.jdbc.meta.mappinginfo.assertnoschemacomponents(mappinginfo.java:382) @ org.apache.openjpa.jdbc.meta.strats.relationtomanytablefieldstrategy.map(relationtomanytablefieldstrategy.java:97) @ org.apache.openjpa.jdbc.meta.strats.relationcollectiontablefieldstrategy.map(relationcollectiontablefieldstrategy.java:94) @ org.apache.openjpa.jdbc.meta.fieldmapping.setstrategy(fieldmapping.java:146) @ org.apache.openjpa.jdbc.meta.runtimestrategyinstaller.installstrategy(runtimestrategyinstaller.java:82) @ org.apache.openjpa.jdbc.meta.fieldmapping.resolvemapping(fieldmapping.java:496) @ org.apache.openjpa.jdbc.meta.fieldmapping.resolve(fieldmapping.java:461) @ org.apache.openjpa.jdbc.meta.classmapping.resolvemapping(classmapping.java:854) @ org.apache.openjpa.meta.classmetadata.resolve(classmetadata.java:1811) @ org.apache.openjpa.meta.metadatarepository.processbuffer(metadatarepository.java:829) @ org.apache.openjpa.meta.metadatarepository.resolvemapping(metadatarepository.java:784) @ org.apache.openjpa.meta.metadatarepository.resolve(metadatarepository.java:664) @ org.apache.openjpa.meta.metadatarepository.getmetadatainternal(metadatarepository.java:418) @ org.apache.openjpa.meta.metadatarepository.getmetadata(metadatarepository.java:389) @ org.apache.openjpa.kernel.brokerimpl.persistinternal(brokerimpl.java:2666) @ org.apache.openjpa.kernel.brokerimpl.persist(brokerimpl.java:2604) @ org.apache.openjpa.kernel.brokerimpl.persist(brokerimpl.java:2587) @ org.apache.openjpa.kernel.brokerimpl.persist(brokerimpl.java:2491) @ org.apache.openjpa.kernel.delegatingbroker.persist(delegatingbroker.java:1077) @ org.apache.openjpa.persistence.entitymanagerimpl.persist(entitymanagerimpl.java:716) @  

it seems openjpa 2.3.0 not support joincolumn in unidirectional onetomany. true or missing something? if case , there workaround without using join tables ?

answering own question : openjpa 2 support @joincolumn in onetomany relationship.

as have found here there various reasons can lead exception.

in case problem false schema url in persistence.xml

the problematic line followng 1 :

 xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> 

which telling openjpa comply jpa 1.0 specifications (jpa 1.0 not support annotation in onetomany relationship jpa 2 does) changed version 2.0 , worked fine.

xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> 

Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -