I updated to OpenJPA 1.1.0, and I'm not getting the above exception anymore,
but its still not working 100%.

Updated example code:

em.getTransaction().begin();
                        
                        TblScmpdt tblScmpdt = new TblScmpdt();
                        tblScmpdt.setAdmsysCde("EBSTA");
                        tblScmpdt.setFndCde("0001526");
                        tblScmpdt.setGccCde("A1526");
                        tblScmpdt.setPflcmnDte(new Date());

                        TblPdtbnfcde tblPdtbnfcde = 
em.getReference(TblPdtbnfcde.class, new
Integer(13));
                        
                        
tblScmpdt.setPdtcdeId(tblPdtbnfcde.getTblPdtcde().getPdtcdeId());
                        tblScmpdt.setTblPdtcde(tblPdtbnfcde.getTblPdtcde());
                        
                        //First need to save parent, this wouldn't be necessary 
if the child
didn't have a composite key
                        tblScmpdt = em.merge(tblScmpdt);
                        em.flush(); //Have to flush otherwise JPA tries to 
persist child before
parent
                        
                        TblPdtbnf tblPdtbnf = new TblPdtbnf();
                        tblPdtbnf.setCmnDte(new Date());
                        tblPdtbnf.setTblPdtbnfcde(tblPdtbnfcde);
                        tblPdtbnf.setPdtbnfId(tblPdtbnfcde.getPdtbnfId());
                        tblPdtbnf.setTblScmpdt(tblScmpdt);
                        tblPdtbnf.setScmpdtId(tblScmpdt.getScmpdtId()); //this 
should get done
automatically by JPA
                        
                        tblScmpdt.getTblPdtbnfs().add(tblPdtbnf);

                        //merge again to save child(ren)
                        tblScmpdt = em.merge(tblScmpdt);
                        
                        em.getTransaction().commit();

-- 
View this message in context: 
http://www.nabble.com/%40OneToMany-%40ManyToOne%2C-Bidirectional%2C-Composite-Key-BUG-tp17801245p17820704.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to