Hi Marc, I think the @ElementForeignKey and @ElementJoinColumn annotations are intended to be used with non-entity types (ie PersistentCollections).
If Child is an entity you'd want to use @ForeignKey and @JoinColumn instead (I gave this a quick try and it looks like it worked for me). Regards, -mike On Fri, Nov 13, 2009 at 7:03 AM, Marc Logemann <[email protected]> wrote: > Hi, > > after struggling for several hours, i need to ask for help. > > Following scenario..... > > DB Table: Father > --------------------------- > INT oid > .... > > > DB Table: Childs > ------------------------ > INT oid > INT father_oid > ... > > Java Entity: Father > -------------------------- > ... > @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "father") > private List<Child> childList; > > Java Entity: Child > -------------------------- > ... > @ManyToOne(cascade = CascadeType.PERSIST) > @ElementForeignKey > @ElementJoinColumn(name="father_oid", referencedColumnName="oid") > protected Father father; > > > When i try to persist a Father, i am getting: > > <openjpa-1.2.0-r422266:683325 fatal user error> > org.apache.openjpa.persistence.ArgumentException: Field "Father.childList" > declares "Child.father" as its mapped-by field, but this field is not a > direct relation. at...... > > Ok, then i changed Child to: > > Java Entity: Child > -------------------------- > ... > @ManyToOne(cascade = CascadeType.PERSIST) > @Column(name = "father_oid") > protected Father father; > > > When i now do persist a Father object, both DB records (Father and Childs) > are filled with records but the FK column in Child (father_oid) is empty. So > the FK relation is broken but it did persist childs, which is somehow weird. > > So whatever i do, i never get a fully persisted graph with correct FK > values. > > Can anyone give me a hint what i am doing wrong here? > > > Thanks a lot. > > --- > regards > Marc Logemann > http://www.logemann.org > http://www.logentis.de > > > > >
