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
-~----------~----~----~----~------~----~------~--~---

Reply via email to