Hi, I don't know, if I can describe my queotion clealy, but I try it. Following scenario: There are two objects Fund and Instrument. Instrument hat one composite object called Interest. Fund does not reference any other obejct. Instrument reference only Interest. There is also an obejct called BookingRequest that references a Fund and an Instrument.
Database modeling is as followes create table fund ( id int not null auto_increment primary key, name varchar(50) not null, ... ); create table instrument ( id int not null auto_increment primary key, name varchar(12) not null unique, ... ); create table interest ( instrument_id int not null auto_increment primary key, name varchar(12) not null, ..., constraint interest_fk_01 foreign key (instrument_id) references instrument (id) ON DELETE CASCADE ON UPDATE CASCADE ); create table booking_request ( id int not null auto_increment primary key, fund_id int not null, instrument_id int not null, transaction_date date, ..., constraint booking_request_fk_01 foreign key (fund_id) references dd_fondsstamm (id), constraint booking_request_fk_02 foreign key (instrument_id) references ip_ins_instrument (id) ); And on the Java sind: public class Instrument { // parameters skipped private Interest interest; //.... // Getters and setters } public class BookingRequest { // parameters skipped private Fund fund; private Instrument instrument; //.... // Getters and setters } Fund and instrument have their own mapping files. By selecting instrument objects the problem of N+1-select is solved. Now assume that there is an BookingRequest DAO that supports a method "getBookingRequestByFund(int fundId)". By definition of mapping for BookingRequest the mapping of Fund and Instrument attributes are fetched using Select statements specified in Fund.xml respectivly Instrument.xml. That means, that fetching a BookingRequest causes three select calls. How can I get BookingRequest objects by only one select. A solution like mapping of referenced Fund within resultMap of the BookingRequest makes the mapping complex and the maintainace more difficult. I know that Hibernate takes care of the object relations and optimizes the select. Is there any mechanism in iBATIS provide this problem domain? Thanks in advance and frindly regards, Reza