cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcin Skladaniec (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CAY-1183) commitToParent() makes object persistence state committed, produces exception when using object in parent context (ROP)
Date Mon, 23 Feb 2009 23:30:45 GMT

    [ https://issues.apache.org/cayenne/browse/CAY-1183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13254#action_13254
] 

Marcin Skladaniec commented on CAY-1183:
----------------------------------------

yes, you are right. the code should say 

painting.setArtist((Artist) painting.getObjectContext().localObject(artist.getObjectId(),
null))); 

> commitToParent() makes object persistence state committed, produces exception when using
object in parent context (ROP)
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAY-1183
>                 URL: https://issues.apache.org/cayenne/browse/CAY-1183
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Cayenne Core Library
>    Affects Versions: 3.0M5
>         Environment: ROP (maybe also 2t cayenne, I have not tried)
>            Reporter: Marcin Skladaniec
>            Priority: Critical
>
> This is a bit of pseudocode showing the problem
> Artist artist = parentContext.perfrormQuery(new SelectQuery(Artist.class)).get(0);
> CayenneContext childContext = parentContext.createChildContext();
> Painting painting = childContext.newObject(Painting.class);
> painting.setArtist(artist);
> painting.setBlah...
> childContext.commitToParent();
> for(Painting p : artist.getPaintings()) 
> logger.debug("painting persistence state : "+PersistenceState.persistenceStateName(p.getPersistenceState()));
//all objects are in state COMMITTED
> this causes no problems so far, but if one now decides to 
> p.getSomeRelatiohship();
> an exception will be raised, because the relationship has not been faulted yet:
>  [java] Caused by: java.lang.Exception: [v.3.0-SNAPSHOT ${project.build.date} ${project.build.time}]
Can't build a query for relationship 'someRelationship' for temporary id: <ObjectId:Painting,
TEMP:00000160F3600029>
>      [java] 	at org.apache.cayenne.remote.service.BaseRemoteService.processMessage(BaseRemoteService.java:160)
>   ... 25 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message