Ok, I'll be more clear: When I start, my post object has has three tags attached as many-to- many with the following ids: 1,2,3
Before step 1: false - isdirty false - isloaded Step 1.) call event with: post = Transfer.get("posts.post", 1); rc.tags = post.getTagsArray(); View: Loop through rc.tags and output tagID to show: 1 2 3 The tags show up. After step 1: true - isdirty true - isloaded Step 2.) call event with: tag1 = Transfer.get("tags.tag", 4); tag2 = Transfer.get("tags.tag", 5); post = Transfer.get("posts.post", 1); post.addTags(tag1); post.addTags(tag2); Transfer.save(post); View: Loop through rc.tags and output tagID to show: 1 2 3 4 5 The new tags (4,5) show up. After step 2: false - isdirty true - isloaded Step 3.) call event with: tag1 = Transfer.get("tags.tag", 6); tag2 = Transfer.get("tags.tag", 7); post = Transfer.get("posts.post", 1); post.addTags(tag1); post.addTags(tag2); Transfer.save(post); View: Loop through rc.tags and output tagID to show: 1 2 3 4 5 The new tags (6,7) do not show up. After step 3: false - isdirty false - isloaded So, only the first addTags() with save() works after calling getTagsArray(); On Nov 2, 5:10 pm, Mark Mandel <mark.man...@gmail.com> wrote: > Okay, so you didn't really answer my question then, maybe I wasn't clear. > > Before second save: > true - getIsDirty() > true - getTagsIsLoaded() > > --> dump out the tags - are all the tags there? > --> add some more tags > --> dump it again, are the tags there? > > After second save (save fails): > false - getIsDirty() > false - getTagsIsLoaded() > > --> dump it again, I assume the tags that were added are now gone? > > Mark > > On Tue, Nov 3, 2009 at 12:06 PM, whostheJBoss > <dotfus...@changethings.org>wrote: > > > > > > > > > That's why I'm asking you :) > > > If I use addTags() and then save it, a dump of the object shows no new > > tags. > > > However, if I use addTags() and then dump the object, before saving, > > there are tags... > > > On Nov 2, 4:25 pm, Mark Mandel <mark.man...@gmail.com> wrote: > > > That doesn't make sense how an add/remove doesn't fire on the object... > > even > > > if the data is all wonky, the add/remove should still work. the proxy() > > > method on the ObjectProxy always goes *somewhere* even if that somewhere > > > goes to an error. > > > > Mark > > > > On Tue, Nov 3, 2009 at 11:21 AM, whostheJBoss < > > dotfus...@changethings.org>wrote: > > > > > addTags() works the first time, when I dump getTagsArray() after the > > > > first save, they show up. > > > > > Any add or remove after that is not reflected in the object. > > > > > On Nov 2, 4:09 pm, Mark Mandel <mark.man...@gmail.com> wrote: > > > > > So what happens between: > > > > > > Before second save: > > > > > true - getIsDirty() > > > > > true - getTagsIsLoaded() > > > > > > --> dump out the tags - are all the tags there? or did addTags() not > > > > work? > > > > > > After second save (save fails): > > > > > false - getIsDirty() > > > > > false - getTagsIsLoaded() > > > > > > What is weird is the getTagsIsLoaded() is being reset back to > > 'false', > > > > after > > > > > the save. > > > > > > Mark > > > > > > On Tue, Nov 3, 2009 at 11:00 AM, whostheJBoss < > > > > dotfus...@changethings.org>wrote: > > > > > > > Oops, I had a slight omission in the original post (or one of those > > > > > > following it, not sure at what point I came across this aspect of > > the > > > > > > behavior), the first addTags() after calling the array works, > > > > > > subsequent calls won't. > > > > > > > Sorry, so I meant when running the event that does the save a > > second > > > > > > time. > > > > > > > Order: > > > > > > 1.) Call an event that uses getTagsArray(); > > > > > > 2.) Call an event that uses addTags(tag); to add a tag, the save > > works > > > > > > and tag shows up > > > > > > 3.) Call an event again that uses addTags(tag); to add a tag, the > > save > > > > > > does not work, tag does not show up > > > > > > > So, the first time I call the addTags() method after having called > > > > > > getTagsArray(), anything after that won't. > > > > > > > On Nov 2, 3:44 pm, Mark Mandel <mark.man...@gmail.com> wrote: > > > > > > > What is the second save? I only see one save in the original > > code? > > > > > > > > Mark > > > > > > > > On Tue, Nov 3, 2009 at 10:38 AM, whostheJBoss < > > > > > > dotfus...@changethings.org>wrote: > > > > > > > > > Before calling getTagsArray(): > > > > > > > > false - getIsDirty() > > > > > > > > false - getTagsIsLoaded() > > > > > > > > > After calling getTagsArray(): > > > > > > > > true - getIsDirty() > > > > > > > > true - getTagsIsLoaded() > > > > > > > > > Immediately after first save (save works): > > > > > > > > false - getIsDirty() > > > > > > > > true - getTagsIsLoaded() > > > > > > > > > Before second save: > > > > > > > > true - getIsDirty() > > > > > > > > true - getTagsIsLoaded() > > > > > > > > > After second save (save fails): > > > > > > > > false - getIsDirty() > > > > > > > > false - getTagsIsLoaded() > > > > > > > > > On Nov 2, 2:27 pm, Mark Mandel <mark.man...@gmail.com> wrote: > > > > > > > > > On Tue, Nov 3, 2009 at 9:25 AM, whostheJBoss < > > > > > > dotfus...@changethings.org > > > > > > > > >wrote: > > > > > > > > > > > Performance is horrid with that many objects. I have since > > > > switched > > > > > > to > > > > > > > > > > using a query for the large collections (which also fixes > > the > > > > > > original > > > > > > > > > > issue of this post). I had a 2900% increase in performance. > > I > > > > > > hadn't > > > > > > > > > > noticed the performance problems originally, since the > > objects > > > > were > > > > > > > > > > still in memory after creation, so they were loading > > instantly > > > > on > > > > > > the > > > > > > > > > > view page. After reinitializing my application and then > > trying > > > > to > > > > > > load > > > > > > > > > > the objects, the problem is apparent. I was only testing > > with 5 > > > > or > > > > > > 10 > > > > > > > > > > in the beginning so the problem floated by unnoticed, so > > I'm > > > > glad I > > > > > > > > > > switch to a query anyway. Still, the original many-to-many > > add > > > > / > > > > > > get > > > > > > > > > > array problem persists in the cases where I only have a few > > > > > > objects. I > > > > > > > > > > have been using a query for those as well, but would still > > like > > > > it > > > > > > to > > > > > > > > > > work through Transfer if possible, as I would like to use > > some > > > > of > > > > > > the > > > > > > > > > > objects. > > > > > > > > > > Generally speaking setting up relationships so that they have > > a > > > > huge > > > > > > > > number > > > > > > > > > of objects is a bad idea... > > > > > > > > > > > To answer your question, yes, this is only happening when > > the > > > > > > objects > > > > > > > > > > are proxied. I will check the results of getIsDirty() and > > > > > > > > > > getTagsIsLoaded(), but I should let you know that I have > > tried > > > > > > > > > > running .loadTags(); before calling getTagsArray(), but the > > > > issue > > > > > > is > > > > > > > > > > unaffected. What results should I have for those two? > > > > > > > > > > Dirty should be 'true', and isLoaded() should also be true. > > > > > > > > > > > Oh, a sort of side-note, but having run these queries via > > TQL > > > > to > > > > > > patch > > > > > > > > > > the problem, I notice that they are run each time and are > > not > > > > > > cached. > > > > > > > > > > I have taken to copying the generated SQL from Transfer out > > > > into a > > > > > > > > > > normal <cfquery> so that I can enable caching when I need > > to. > > > > Is > > > > > > there > > > > > > > > > > a way to turn on caching for TQL queries? > > > > > > > > > > There isn't a way to cache TQL results as of yet. > > > > > > > > > > Mark > > > > > > > > > > -- > > > > > > > > > E: mark.man...@gmail.com > > > > > > > > > T:http://www.twitter.com/neurotic > > > > > > > > > W:www.compoundtheory.com > > > > > > > > -- > > > > > > > E: mark.man...@gmail.com > > > > > > > T:http://www.twitter.com/neurotic > > > > > > > W:www.compoundtheory.com > > > > > > -- > > > > > E: mark.man...@gmail.com > > > > > T:http://www.twitter.com/neurotic > > > > > W:www.compoundtheory.com > > > > -- > > > E: mark.man...@gmail.com > > > T:http://www.twitter.com/neurotic > > > W:www.compoundtheory.com > > -- > E: mark.man...@gmail.com > T:http://www.twitter.com/neurotic > W:www.compoundtheory.com --~--~---------~--~----~------------~-------~--~----~ Before posting questions to the group please read: http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer You received this message because you are subscribed to the Google Groups "transfer-dev" group. To post to this group, send email to transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en -~----------~----~----~----~------~----~------~--~---