Excellent!  Now I can change ibator so that it can be used to generate
queries that return 50 billion rows and suck up all your network bandwidth!
(Just kidding)

Jeff Butler

On Fri, Aug 15, 2008 at 10:46 PM, Clinton Begin <[EMAIL PROTECTED]>wrote:

> The coolest thing... this test passes in iBATIS 3... no changes, it just
> worked.
>
> Clinton
>
>
> On Thu, Aug 14, 2008 at 12:44 PM, Jeff Butler <[EMAIL PROTECTED]>wrote:
>
>>  That's the general idea.  I'm not sure of the merits of it or not.  The
>> pro is that you could fill out a graph with one query.  The con is that you
>> end up with a cross join and generate a ton of duplicate data coming back.
>>
>> The wierd thing is - sometimes this works, and sometimes it fails.  I
>> haven't dug into it to see what the issue is, but here's a simple test case
>> that fails.  All you need is iBATIS and HSQLDB to run it.
>>
>> Jeff Butler
>>
>>
>>
>>
>> On Thu, Aug 14, 2008 at 12:07 AM, Clinton Begin <[EMAIL PROTECTED]>wrote:
>>
>>> Couple of notes...
>>>
>>>   * The top level call was for a list of categories (not just one).
>>>
>>>   * I adapted this test from an existing test where categories had many
>>> products, which in turn had many items.
>>>
>>> So that would seem to be almost all of the possible cases... combinations
>>> of those should work, but I'd have to dream up quite a model to even come up
>>> with one. :-)
>>>
>>> Category
>>>   - Items
>>>   - Products
>>>
>>> ....or....
>>>
>>>
>>> Category
>>>     - Products
>>>         - Items
>>>
>>> Clinton
>>>
>>>
>>> On Wed, Aug 13, 2008 at 11:04 PM, Clinton Begin <[EMAIL PROTECTED]
>>> > wrote:
>>>
>>>> I just wrote a little unit test for that.  It totally works. Here's the
>>>> ResultMap to make sure we're talking about the same thing....
>>>>
>>>>  <resultMap id="categoryResultMap" class="testdomain.Category"
>>>> groupBy="categoryId">
>>>>     <result property="categoryId" column="catid"/>
>>>>     <result property="name" column="catname"/>
>>>>     <result property="description" column="catdescn"/>
>>>> *    <result property="productList" resultMap="productResultMap"/>
>>>>     <result property="itemList" resultMap="itemResultMap"/>*
>>>>   </resultMap>
>>>>
>>>>   <resultMap id="productResultMap" class="testdomain.Product" >
>>>>     <result property="productId" column="productid"/>
>>>>     <result property="categoryId" column="category"/>
>>>>     <result property="name" column="prodname"/>
>>>>     <result property="description" column="proddescn"/>
>>>>   </resultMap>
>>>>
>>>>   <resultMap id="itemResultMap" class="testdomain.Item">
>>>>     <result property="itemId" column="itemid"/>
>>>>     <result property="productId" column="productid"/>
>>>>     <result property="listPrice" column="listprice"/>
>>>>     <result property="unitCost" column="unitcost"/>
>>>>     <result property="supplierId" column="supplier"/>
>>>>     <result property="status" column="status"/>
>>>>     <result property="attribute1" column="attr1"/>
>>>>     <result property="quantity" column="qty"/>
>>>>   </resultMap>
>>>>
>>>>
>>>>
>>>> Clinton
>>>>
>>>>
>>>> On Wed, Aug 13, 2008 at 10:17 PM, Larry Meadors <
>>>> [EMAIL PROTECTED]> wrote:
>>>>
>>>>> On Wed, Aug 13, 2008 at 4:27 PM, Clinton Begin <
>>>>> [EMAIL PROTECTED]> wrote:
>>>>> > 4.  groupBy is gone completely.  The <collection> element combined
>>>>> with the
>>>>> > ID element now work together to achieve this.  I agree the old
>>>>> > implementation was annoying.  What do you mean by multiple
>>>>> independent
>>>>> > lists?  Does that not work now?
>>>>>
>>>>> I *think* he's referring to something like where you have people that
>>>>> have cats and dogs.
>>>>>
>>>>> Say you have a PERSON table, a DOG table, and a CAT table.
>>>>>
>>>>> If DOG has a person_id and CAT has a person_id, and you join the three
>>>>> tables, you can't get a list of person objects each with the correct
>>>>> list of dog and cat objects.
>>>>>
>>>>> I've not really understood the desire for this one, because you can't
>>>>> really do that effectively with SQL, either - so instead of 1+N
>>>>> selects, you do one select that returns m*n*o records. So for 10
>>>>> people with 10 dogs and 10 cats, you get 1000 records instead of the
>>>>> 200 that 1+N selects get you.
>>>>>
>>>>> Rick has whined about that one for years. ;-)
>>>>>
>>>>> Larry
>>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to