I think I could use a row handler to arrange the objects in a situation like
this.  One question I have:  Do the results of a query with a custom
RowHandler still get cached when using OSCache?


Brad

On 2/22/07, Brad Handy <[EMAIL PROTECTED]> wrote:

iBatis came back with an error message indicating too many objects were
being returned for executeQueryForObject.


Brad

On 2/20/07, Brad Handy <[EMAIL PROTECTED]> wrote:
>
> Wouldn't I have to give unique column names for those identifying the
> child data?
>
> For example
>
> table parentChild
>    some_foreign_key int
>    id int
>    description varchar(64)
>    parent_id int
>
>
> rows
>
>   id          description
> parent_id
>   0           grandparent                                       null
>   1           parent 1                                             0
>   2           child 1                                               1
>   3           child 2                                               1
>   4           parent 2                                             0
>   5           child 3                                               4
>   6           parent 3                                             0
>   7           child 4                                               6
>   8           child 5                                               6
>
>
> select
>     p.id as parentId
>     , p.description as parentDesc
>     , p.parent_id as parentAncestorId
>     , c.id as childId
>     , c.description as childDesc
>     , c.parent_id as childAncestorId
> from
>    parentChild p
>     , parentChild c
> where
>    p.some_foreign_key = c.some_foreign_key
>    and p.id = c.parent_id
>    and p.id <> c.id
> order by
>    p.id
>    , c.id
>
>
> should return
>
> parentId  parentDesc               parentAncestorId  childId
> childDesc                childAncestorId
> 0           grandparent               null                      1
> parent 1                    0
> 0           grandparent               null                      4
> parent 2                    0
> 0           grandparent               null                      6
> parent 3                    0
> 1           parent 1                    0
> 2        child 1                       1
> 1           parent 1                    0
> 3        child 2                       1
> 4           parent 2                    0                         5
>        child 3                       4
> 6           parent 3                    0                         7
>        child 4                       6
> 6           parent 3                    0                         8
>        child 5                       6
>
>
>
>
>
> On 2/20/07, Clinton Begin < [EMAIL PROTECTED] > wrote:
> >
> >
> > i.e. is it a join with a bridge table or not (1:M or M:N)?
> >
> > Regardless, I wonder if a recursive result map would work....It
> > might.
> >
> > <resultMap id="Node" ... >
> >   <result name="children" ... resultMap="Node"/>
> > ...
> >
> > I don't see any reason why that would cause any problems...perhaps try
> > it and let us know.
> >
> > Cheers,
> > Clinton
> >
> > On 2/19/07, Clinton Begin <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > Oh...is it a self join?
> > >
> > > Clinton
> > >
> > > On 2/19/07, Brad Handy < [EMAIL PROTECTED]> wrote:
> > > >
> > > > I guess I'll have to take a different approach.  The depth isn't
> > > > set to be a defined level; so if I go more than two levels below the
> > > > grandparent, it won't work.
> > > >
> > > > On 2/19/07, Clinton Begin <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > You'll need one query with 3 result maps.  The result maps will
> > > > > be chained together with collection properties using the resultMap
> > > > > attribute.
> > > > >
> > > > >
> > > > > <resultMap id="Child">
> > > > >   ...
> > > > > <resultMap id="Parent">
> > > > >   <result ... resultMap="Child"/>
> > > > >   ...
> > > > > <resultMap id="GrandParent">
> > > > >   <result ... resultMap="Parent"/>
> > > > >   ...
> > > > > <select ... resultMap="GrandParent">
> > > > > ...
> > > > >
> > > > > The select statement should join the tables together and you may
> > > > > need to be very explicit with the column names.
> > > > >
> > > > > Clinton
> > > > >
> > > > > On 2/19/07, Brad Handy <[EMAIL PROTECTED]> wrote:
> > > > > >
> > > > > > I have a table which has all of the parent/child relationships
> > > > > > in the same table.  I would like to avoid the N+1 selects with this
> > > > > > construct, but it's unclear from the documentation if this can be 
done.
> > > > > >
> > > > > > Let's say I have the following relationships defined in the
> > > > > > table:
> > > > > >
> > > > > > Grand Parent
> > > > > >    Parent 1
> > > > > >       Child 1
> > > > > >       Child 2
> > > > > >    Parent 2
> > > > > >    Parent 3
> > > > > >       Child 3
> > > > > >       Child 4
> > > > > >
> > > > > >
> > > > > > When creating the child objects for "Grand Parent", will the
> > > > > > same "Parent*" objects be used to add the children "Child*" objects 
to the
> > > > > > appropriate parents?
> > > > > >
> > > > > >
> > > > > >
> > > > > > Brad
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to