ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tamilselvan Radha Krishnan" <Tamilselvan.RadhaKrish...@igate.com>
Subject Need help on nested N + 1 query
Date Tue, 28 Nov 2006 17:09:30 GMT
Hi,
I've written a N + 1 query in Ibatis such a way that it will return the
nested results as below :

   Customer - First object
             DealFacility - An array list of objects within Customer
                     Facility - An array list of objects within
DealFacility
                        LoanInfo - An array list of objects within
Facility
    

The Customer object is having a 'strCustomerId' as an attribute.  I need
to use this 'strCustomerId' in the WHERE clause of the query used for
populating 'LoanInfo'  (<select id="getFacilityLoans"  )  i.e, 3 level
below the Customer, in addition to 'Facility' class above.

I've placed my Login.xml query below.  

<resultMap id="customersResults"
class="com.ge.cf.myaccounts.domain.Customer"> 
        <result property="strCustomerId"
column="CUSTOMER_CODE"/>
        <result property="strCustomerName"
column="CUSTOMER_NAME"/>
        <result property="alDealFacilities"
column="CUSTOMER_CODE"  	select="Login.getDealFacilities"/>

   </resultMap>
   
   <select id="getCustomerDetails"  resultMap="customersResults"
parameterClass="com.ge.cf.myaccounts.domain.Customer">
     	SELECT   CUSTOMER_CODE,CUSTOMER_NAME
		FROM     STG_INTM_CUSTOMER_INFO 
		WHERE    CUSTOMER_CODE=#strCustomerId#

   </select>  
   ..
..
..

<select id="getDealFacilities"  resultMap="dealFacilityResults"
parameterClass="java.lang.String">  (selecting Facilities here)
<select id="getFacilities"  resultMap="facilityResults"
parameterClass="java.lang.String">   (Selecting facility loans here)
<select id="getFacilityLoans"  resultMap="facilityLoanResults"
parameterClass="java.lang.String">  (In this query, I need to use the
"strCustomerId" from the first Customer object within the N+1 query.

Any suggestion would be much helpful.

Regards,
Tamil








_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Information transmitted by this EMAIL is proprietary to iGATE Group of Companies and is intended
for use only by the individual 
or entity to whom it is addressed and may contain information that is privileged, confidential,
or exempt from disclosure under 
applicable law. If you are not the intended recipient of this EMAIL immediately notify the
sender at iGATE or mailadmin@igate.com 
and delete this EMAIL including any attachments
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Mime
View raw message