Again - this is why storing stuff in the session is not so great. There is
going to never be a guarantee that an object stored in session is going to
match up to that is stored in the cache.

Stuff can get dropped from the cache, either as a composed object, or
otherwise. (I forget how merging with cloned data works, but quite possibly
that drops stuff out too).

Can you replicate this issue in a single page, without using the session
scope?

Mark

On Tue, Jun 7, 2011 at 3:10 AM, Brian G <[email protected]> wrote:

>
> No, the (composed) object in the session is always in the Transfer
> cache.  This is why the values should be the same AFAICT.  The
> relationship looks like:
>
> member o2m ---> clubmembership <--- m2o attendee
>
> Before you can get to having a session.attendee, you must have a
> clubmembership.  However, you could migrate away from the event
> registration, update your membership, and return.  This is the
> scenario where the two values are not the same.
>
> In short, session.attendee.getClubMembership() (a m2o) is not
> returning the same object as member.getClubMembership() (a o2m).
>
> Here's the revised code that is working (but the discard has some
> performance penalties that I'm looking to avoid for larger
> relationships):
>
> mem = member.clone();
> clubmem = mem.getClubMembership(clubid);
> clubmem.set*(x,y,z);
> if (not clubmem.validate())
>  // report errors to user
> else
>  transfer.save(clubmem);
>   transfer.discard(clubmem);                    // new
>  transfer.discard(clubmem.getParentMember());  // new
>
>
> With these discards,
> session.attendee.getClubMembership().getMemberID() is now equal to
> member.getClubMembership(clubid).getMemberID()
>
> I don't believe I should need to use discard in this method because
> saving the object should synchronize with the Transfer cache which
> would update the TO that attendee.getClubMembership() returns, right?
>
>
> Brian
>
>
> On Jun 2, 10:36 pm, Mark Mandel <[email protected]> wrote:
> > Basically, I think the issue boils down to this - the object you have in
> > session may, or may not be in the Transfer cache.
> >
> > So it may not be updated when the TO in the Transfer cache gets updated.
> >
> > This is where I would just store the ID of the object you reference in
> > session, and let Transfer manage the session.
> >
> > Does that work? Or did I miss the point of this?
>
> --
> Before posting questions to the group please read:
>
> http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer
>
> Try out the new Transfer ORM Custom Google Search:
> http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8
>
> You received this message because you are subscribed to the Google Groups
> "transfer-dev" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/transfer-dev?hl=en
>



-- 
E: [email protected]
T: http://www.twitter.com/neurotic
W: www.compoundtheory.com

cf.Objective(ANZ) - Nov 17, 18 - Melbourne Australia
http://www.cfobjective.com.au

Hands-on ColdFusion ORM Training
www.ColdFusionOrmTraining.com

-- 
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

Try out the new Transfer ORM Custom Google Search:
http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8

You received this message because you are subscribed to the Google Groups 
"transfer-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en

Reply via email to