Dzmitry Kazimirchyk created CAY-1714:
----------------------------------------

             Summary: ROP: Cayenne tries to build a query for non committed 
object when using more than 2 nested contexts
                 Key: CAY-1714
                 URL: https://issues.apache.org/jira/browse/CAY-1714
             Project: Cayenne
          Issue Type: Bug
          Components: ROP
    Affects Versions: 3.1M3
            Reporter: Dzmitry Kazimirchyk


Code describing the problem:

        CayenneContext context = cayenneService.getContext();  
        Artist a = context.newObject(Artist.class);
        a.setArtistName("a");

        ObjectContext child = context.createChildContext();        
        Painting p = child.newObject(Painting.class);
        p.setPaintingTitle("p");
        p.setToArtist(child.localObject(a));
        
        child.commitChangesToParent();
        
        p.getToGallery(); // this will throw an exception


On the last line following exception will be thrown:

org.apache.cayenne.CayenneRuntimeException: [v.3.1M4-SNAPSHOT Jun 15 2012 
06:55:01] Can't build a query for relationship 'gallery' for temporary id: 
<ObjectId:Painting, TEMP:000001CA37BA0001>
        at 
org.apache.cayenne.query.RelationshipQuery.createReplacementQuery(RelationshipQuery.java:113)
        at 
org.apache.cayenne.query.IndirectQuery.getReplacementQuery(IndirectQuery.java:103)
        at org.apache.cayenne.query.IndirectQuery.route(IndirectQuery.java:86)
        at 
org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:424)
....................

Persistence state of artist and painting objects by that moment will be 
COMMITTED.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to