ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Goodin" <brandon.goo...@gmail.com>
Subject Re: Avoiding N+1 Selects
Date Tue, 20 Feb 2007 15:02:42 GMT
oh... you're doomed ;-)

On 2/20/07, Brad Handy <brad.handy@gmail.com> wrote:
>
> I guess I should've mentioned I'm using Sybase.  :o)
>
>
>
> On 2/20/07, Clinton Begin <clinton.begin@gmail.com > 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 <clinton.begin@gmail.com> wrote:
> > >
> > >
> > > Oh...is it a self join?
> > >
> > > Clinton
> > >
> > > On 2/19/07, Brad Handy < brad.handy@gmail.com> 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 <clinton.begin@gmail.com> 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 <brad.handy@gmail.com> 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
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>

Mime
View raw message