Hi Mark

Any ideas on how I can achieve what I'm after? Perhaps I should use a
decorator. So off the top of my head I'd retrieve all child objects
(getContentTreeContentPanels) and then add a decorator method
getPanelsByPosition(n). Within the decorator I'd loop through all the
child objects and just return the items with match the "n" argument.
How would you recommend filtering and returning the collection inside
the decorator? I'd have to be careful not to loop through the iterator
and call the remove() method because this would remove it for any
subsequent calls to the decorator method. So would you Copy() the o2m
array inside the decorator, loop through it, strip out items based on
argument "n" and return the filtered array?

Cheers
Matthew

On Oct 6, 8:32 am, Mark Mandel <[email protected]> wrote:
> You can only have one relationship per foreign key.
>
> Check out the big 
> warning:http://docs.transfer-orm.com/wiki/Transfer_Configuration_File.cfm#one...
>
>
>
> On Sun, Oct 4, 2009 at 9:08 PM, Matthew <[email protected]> wrote:
>
> > Hi all
>
> > I'm getting some weird behaviour where I've got several o2m
> > relationships pointing to the same object but with different "where"
> > conditions. As you can see in the display code at the bottom I'm just
> > dumping the 3 different o2m Arrays (I get the same bug when I iterate
> > through the records). When I run the page the 1st time it reflects the
> > database i.e. there are 2 records linked from the base object to the
> > child on the 2nd relationship i.e.
> > "ContentTreeContentPanelsPosition2". But when I refresh the page (and
> > on all subsequent refreshes) "ContentTreeContentPanelsPosition1"
> > suddenly has 2 copies of whatever was in
> > "ContentTreeContentPanelsPosition2". So when there was 1 relationship
> > in Position2 then Position1 had 2 Array items. When I added a 2nd
> > relationship to Position2 suddenly Position1 had 4 Array items. My
> > current theory on possible guilty parties are:
> > 1) Transfer cache copying and doubling up the Array from
> > "ContentTreeContentPanelsPosition2" to
> > "ContentTreeContentPanelsPosition1". But why it doesn't copy it to
> > "ContentTreeContentPanelsPosition3" I don't know.
> > 2) The child object i.e. the "m" in the o2m has a composite key. So
> > when the base object joins onto the child this may be an issue.
>
> > I'm going to setup an isolated test case to rule as many factors out
> > as possible (such as removing MachII and ColdSpring from the equation)
> > but I just thought I'd see if anyone can see any obvious issues? I've
> > got lots of other relationships throughout the system which are fine
> > it's just these ones which use the WHERE condition.
>
> > **** XML CONFIG ****
> > //// BASE OBJECT ////
> > <object name="ContentTree"
> > decorator="decorators.contentTreeDecorator">
> >        <id name="contentTreeId" type="numeric"></id>
> >        <onetomany name="ContentTreeContentPanelsPosition1" lazy="true">
> >                <link to="ContentTree_ContentPanel" column="contentTreeId"
> > />
> >                <collection type="array">
> >                        <condition where="{layoutPosition} = 1" />
> >                        <order property="sequencePosition" order="asc" />
> >                </collection>
> >        </onetomany>
> >        <onetomany name="ContentTreeContentPanelsPosition2" lazy="true">
> >                <link to="ContentTree_ContentPanel" column="contentTreeId"
> > />
> >                <collection type="array">
> >                        <condition where="{layoutPosition} = 2" />
> >                        <order property="sequencePosition" order="asc" />
> >                </collection>
> >        </onetomany>
> >        <onetomany name="ContentTreeContentPanelsPosition3" lazy="true">
> >                <link to="ContentTree_ContentPanel" column="contentTreeId"
> > />
> >                <collection type="array">
> >                        <condition where="{layoutPosition} = 3" />
> >                        <order property="sequencePosition" order="asc" />
> >                </collection>
> >        </onetomany>
> > </object>
>
> > //// CHILD OBJECT ////
> > <object name="ContentTree_ContentPanel"
> > table="ContentTree_ContentPanel">
> >        <compositeid>
> >              <manytoone name="ContentPanel" />
> >              <parentonetomany class="ContentTree" />
> >        </compositeid>
> >        <property name="layoutPosition" type="numeric" />
> >        <property name="sequencePosition" type="numeric" />
> >        <manytoone name="ContentPanel">
> >                <link to="ContentPanel" column="contentPanelId" />
> >        </manytoone>
> > </object>
>
> > **** DISPLAY CODE ****
> > <cfdump
> > var="#oContentTreeItemTab.getContentTreeContentPanelsPosition1Array()
> > #">
> > <cfdump
> > var="#oContentTreeItemTab.getContentTreeContentPanelsPosition2Array()
> > #">
> > <cfdump
> > var="#oContentTreeItemTab.getContentTreeContentPanelsPosition3Array()
> > #">
>
> > **** ENVIRONMENT ****
> > Transfer 1.1, Mach-II, ColdSpring
>
> > Cheers
> > Matthew
>
> --
> E: [email protected]
> 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 [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