ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nic Werner <wer...@sonoma.edu>
Subject Re: Object Oriented Loading Best Practice
Date Mon, 02 May 2005 21:44:55 GMT
Thanks, I see your point.

Larry Meadors wrote:

> I mean this is the nicest possible way: This is a silly question, and 
> the answer is "it depends".
>
> If you have 1000 customers (A) and each of them have 1000 orders (B) 
> and each order has 25 line items (C), do you really need to load up 
> 25,000,000 objects?
>
> If so, buy a buttload of RAM, load them all in one uber-query, and be 
> done with it.
>
> If not, use lazy loading.
>
> Larry
>
>
> On 5/2/05, *Nic Werner* <werner@sonoma.edu <mailto:werner@sonoma.edu>> 
> wrote:
>
>     The question is more whether I should let the chain of objects
>     populate
>     itself, or knowing A contains B contains C, populate them all in one
>     call. The former is more object oriented, while the latter is more
>     efficient.
>
>     I need to load all the child objects, but instead of having one Select
>     block w/a ResultMap that calls the other Objects, I now have to write
>     another query and create a new ResultMap for all three objects. Or
>     maybe
>     I can include other ResultMaps?
>
>     The downside I see to that is that if I change an attribute in
>     object B
>     or C, I have another query to update and ResultMap, whereas if I made
>     the individual call I would only need to update the Bean and its
>     related
>     query.
>
>     The upside is of course, only one SQL call.
>
>     - Nic.
>
>     Brandon Goodin wrote:
>
>     >If you have no need to load the child objects then don't use a
>     complex
>     >result in your resultMap.
>     >
>     >Brandon
>     >
>     >On 5/2/05, Nic Werner <werner@sonoma.edu
>     <mailto:werner@sonoma.edu>> wrote:
>     >
>     >
>     >>Hi,
>     >>    I have several objects in my program which have a bit of a
>     >>hierarchy, ie A contains B, B contains C and so on. Each table
>     in the DB
>     >>is linked to each other by a foreign key on a unique ID. I have
>     iBATIS
>     >>populating each Bean by using a resultMap and calling on the
>     object's
>     >>Select statement to populate the encapsulated Bean. Meaning, if
>     I try
>     >>and load info for B, it makes a call to the DB for B, and also
>     for C.
>     >>
>     >>My question is: Is this the best way to go about things? If I am
>     loading
>     >>A, it is going to create a call for A,B and C, where normally (w/o
>     >>IBATIS) I would just create a statement that contained a join of all
>     >>three tables on their unique IDs - and only one DB call.
>     >>
>     >>Let me know if I need to explain more.
>     >>
>     >>Thanks,
>     >>
>     >>- Nic.
>     >>
>     >>
>     >>
>
>


Mime
View raw message