You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by deepakl_2000 <de...@yahoo.com> on 2009/12/02 18:30:06 UTC

Issue with join of 2 tables in Ibatis

Hi,

    I have to fetch a list from 2 tables based on below condition.

 

[code]

-------------------

Service class

-------------------

fileParameters.put("Project_Code",projectCode);

fileParameters.put("Files_ID",filePk);

responseFileData =
(List)sqlMap.queryForList("getFileResponses",fileParameters);

 

-------------------------------------------------------
query.xml

<parameterMap id="FileDetails" class="java.util.Map" >                                               
                <parameter property="Project_Code" jdbcType="VARCHAR" />
                <parameter property="Files_ID" jdbcType="INT" />
</parameterMap>

                                 

<resultMap id="get_list" class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
            <result property="rule_Id" column="Rule_Id"/>           
            <result property="response" column="Response"/>                        
            <result property="remarks" column="Remarks"/>                        
/resultMap>

<select id="getFileResponses"
resultClass="com.hcl.fpTool.pojo.ResponseFilesDataPOJO"
parameterMap="FileDetails" resultMap="get_list">                    

            select bres.rule_id, bstatic.rule_desc,bres.remarks,
bres.response 
            from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
bstatic
            where  project_Code = ? and files_id = ?
            and bres.rule_id = bstatic.rule_id and bres.rule_id not like
('%CD%')                                        
 </select>

 

The problem lies here is 
1> i need  to select "bstatic.rule_desc"  from my another table
"BusinessRule_StaticData"
2>i need to select "bres.rule_id" from my another table
"BusinessRule_ResFiles_Data"

 so i have a total select of 4 columns based on a join of 2 tables.

so please help me to correct the "query.xml" file such that i can accomplish
the selection of 4 columns and retrieve it back as a list in my service
class



-- 
View this message in context: http://old.nabble.com/Issue-with-join-of-2-tables-in-Ibatis-tp26612861p26612861.html
Sent from the iBATIS - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ibatis.apache.org
For additional commands, e-mail: dev-help@ibatis.apache.org


Re: Issue with join of 2 tables in Ibatis

Posted by Jason King <jh...@airmail.net>.
Yes, someone in this discussion is confused...
I said to change the ResponseFilesDataPOJO class to have that attribute.
You can't have a single select populate 2 resultmaps so if you want the 
extra column(s) you'll need them in the class.
If, for some reason, you can't change ResponseFilesDataPOJO then you'll 
need another class with all the column values you want back or write two 
queries (and have a 2nd class to get the results of the 2nd query).
It would seem add a new property to the existing class would be easiest 
all around.
deepakl_2000 wrote:
> Hi jhking,
>            Im sorry to say that "rule_desc" is not a property of
> ResponseFilesDataPOJO.it is a property of some other class,please dont get
> confused...
>
> 1> bstatic.rule_desc is coming from  another table "BusinessRule_StaticData
> bstatic"
> 2> bres.rule_id,bres.remarks,bres.response is coming from another table "
> BusinessRule_ResFiles_Data bres"
>
> Then i perform a join as shown below.
>
>             select bres.rule_id,
> bstatic.rule_desc,bres.remarks,bres.response 
>             from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
> bstatic
>             where  project_Code = ? and files_id = ?
>             and bres.rule_id = bstatic.rule_id and bres.rule_id not like
> ('%CD%')   
>
> public class StaticDataPOJO {
> 	private String rule_Desc;
>             //getters and setters
> }
>
>
> class ResponseFilesDataPOJO{
>     private String rule_id;
>     private String response;
>     private String remarks;
>     // constructor , getters , setters
> }
>
> please help me now.....
> how should i change my query.xml file to get the correct fetch.....could you
> please modify my code below and let me know how to proceed
>
> -------------------------------------------------------
> query.xml
>
> <parameterMap id="FileDetails" class="java.util.Map" >                                               
>                 <parameter property="Project_Code" jdbcType="VARCHAR" />
>                 <parameter property="Files_ID" jdbcType="INT" />
> </parameterMap>
>
>                                  
>
> <resultMap id="get_list" class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
>             <result property="rule_Id" column="Rule_Id"/>           
>             <result property="response" column="Response"/>                        
>             <result property="remarks" column="Remarks"/>                        
> /resultMap>
>
> <select id="getFileResponses" 
> resultClass="com.hcl.fpTool.pojo.ResponseFilesDataPOJO"
> parameterMap="FileDetails" resultMap="get_list">                    
>            select bres.rule_id, bstatic.rule_desc,bres.remarks,
> bres.response 
>            from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
> bstatic
>            where  project_Code = ? and files_id = ?
>            and bres.rule_id = bstatic.rule_id and bres.rule_id not like
> ('%CD%')                                        
> </select>
>
>
> Please need help forum people..im stuck with this for quite a while some
> time....
> i will be highly thankful to you guys if could help me with this.....
>
> Thanks in advance for your quick replies...
>
> :confused:
>
>
> jhking wrote:
>   
>> Your query gets the 4 columns you need from the appropriate tables.
>> You just need to change your resultmap and ResponseFilesDataPOJO to have
>> all 4 values.
>>
>> class ResponseFilesDataPOJO{
>>     private String rule_id;
>>     private String response;
>>     private String remarks;
>>     private String rule_desc;   
>> // constructor , getters , setters
>> }
>> <resultMap id="get_list"
>> class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
>>             <result property="rule_Id" column="Rule_Id"/>           
>>             <result property="response" column="Response"/>                        
>>             <result property="remarks" column="Remarks"/>                        
>>             <result property="rule_desc" column="Rule_desc"/>
>> /resultMap>
>>
>>
>> --- deepakl_2000@yahoo.com wrote:
>>
>> From: deepakl_2000 <de...@yahoo.com>
>> To: dev@ibatis.apache.org
>> Subject: Issue with join of 2 tables in Ibatis
>> Date: Wed, 2 Dec 2009 09:30:06 -0800 (PST)
>>
>>
>> Hi,
>>
>>     I have to fetch a list from 2 tables based on below condition.
>>
>>  
>>
>> [code]
>>
>> -------------------
>>
>> Service class
>>
>> -------------------
>>
>> fileParameters.put("Project_Code",projectCode);
>>
>> fileParameters.put("Files_ID",filePk);
>>
>> responseFileData =
>> (List)sqlMap.queryForList("getFileResponses",fileParameters);
>>
>>  
>>
>> -------------------------------------------------------
>> query.xml
>>
>> <parameterMap id="FileDetails" class="java.util.Map" >                                               
>>                 <parameter property="Project_Code" jdbcType="VARCHAR" />
>>                 <parameter property="Files_ID" jdbcType="INT" />
>> </parameterMap>
>>
>>                                  
>>
>> <resultMap id="get_list"
>> class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
>>             <result property="rule_Id" column="Rule_Id"/>           
>>             <result property="response" column="Response"/>                        
>>             <result property="remarks" column="Remarks"/>                        
>> /resultMap>
>>
>> <select id="getFileResponses"
>> resultClass="com.hcl.fpTool.pojo.ResponseFilesDataPOJO"
>> parameterMap="FileDetails" resultMap="get_list">                    
>>
>>             select bres.rule_id, bstatic.rule_desc,bres.remarks,
>> bres.response 
>>             from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
>> bstatic
>>             where  project_Code = ? and files_id = ?
>>             and bres.rule_id = bstatic.rule_id and bres.rule_id not like
>> ('%CD%')                                        
>>  </select>
>>
>>  
>>
>> The problem lies here is 
>> 1> i need  to select "bstatic.rule_desc"  from my another table
>> "BusinessRule_StaticData"
>> 2>i need to select "bres.rule_id" from my another table
>> "BusinessRule_ResFiles_Data"
>>
>>  so i have a total select of 4 columns based on a join of 2 tables.
>>
>> so please help me to correct the "query.xml" file such that i can
>> accomplish
>> the selection of 4 columns and retrieve it back as a list in my service
>> class
>>
>>
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/Issue-with-join-of-2-tables-in-Ibatis-tp26612861p26612861.html
>> Sent from the iBATIS - Dev mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@ibatis.apache.org
>> For additional commands, e-mail: dev-help@ibatis.apache.org
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@ibatis.apache.org
>> For additional commands, e-mail: dev-help@ibatis.apache.org
>>
>>
>>
>>     
>
>   


Re: Issue with join of 2 tables in Ibatis

Posted by deepakl_2000 <de...@yahoo.com>.
Hi jhking,
           Im sorry to say that "rule_desc" is not a property of
ResponseFilesDataPOJO.it is a property of some other class,please dont get
confused...

1> bstatic.rule_desc is coming from  another table "BusinessRule_StaticData
bstatic"
2> bres.rule_id,bres.remarks,bres.response is coming from another table "
BusinessRule_ResFiles_Data bres"

Then i perform a join as shown below.

            select bres.rule_id,
bstatic.rule_desc,bres.remarks,bres.response 
            from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
bstatic
            where  project_Code = ? and files_id = ?
            and bres.rule_id = bstatic.rule_id and bres.rule_id not like
('%CD%')   

public class StaticDataPOJO {
	private String rule_Desc;
            //getters and setters
}


class ResponseFilesDataPOJO{
    private String rule_id;
    private String response;
    private String remarks;
    // constructor , getters , setters
}

please help me now.....
how should i change my query.xml file to get the correct fetch.....could you
please modify my code below and let me know how to proceed

-------------------------------------------------------
query.xml

<parameterMap id="FileDetails" class="java.util.Map" >                                               
                <parameter property="Project_Code" jdbcType="VARCHAR" />
                <parameter property="Files_ID" jdbcType="INT" />
</parameterMap>

                                 

<resultMap id="get_list" class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
            <result property="rule_Id" column="Rule_Id"/>           
            <result property="response" column="Response"/>                        
            <result property="remarks" column="Remarks"/>                        
/resultMap>

<select id="getFileResponses" 
resultClass="com.hcl.fpTool.pojo.ResponseFilesDataPOJO"
parameterMap="FileDetails" resultMap="get_list">                    
           select bres.rule_id, bstatic.rule_desc,bres.remarks,
bres.response 
           from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
bstatic
           where  project_Code = ? and files_id = ?
           and bres.rule_id = bstatic.rule_id and bres.rule_id not like
('%CD%')                                        
</select>


Please need help forum people..im stuck with this for quite a while some
time....
i will be highly thankful to you guys if could help me with this.....

Thanks in advance for your quick replies...

:confused:


jhking wrote:
> 
> Your query gets the 4 columns you need from the appropriate tables.
> You just need to change your resultmap and ResponseFilesDataPOJO to have
> all 4 values.
> 
> class ResponseFilesDataPOJO{
>     private String rule_id;
>     private String response;
>     private String remarks;
>     private String rule_desc;   
> // constructor , getters , setters
> }
> <resultMap id="get_list"
> class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
>             <result property="rule_Id" column="Rule_Id"/>           
>             <result property="response" column="Response"/>                        
>             <result property="remarks" column="Remarks"/>                        
>             <result property="rule_desc" column="Rule_desc"/>
> /resultMap>
> 
> 
> --- deepakl_2000@yahoo.com wrote:
> 
> From: deepakl_2000 <de...@yahoo.com>
> To: dev@ibatis.apache.org
> Subject: Issue with join of 2 tables in Ibatis
> Date: Wed, 2 Dec 2009 09:30:06 -0800 (PST)
> 
> 
> Hi,
> 
>     I have to fetch a list from 2 tables based on below condition.
> 
>  
> 
> [code]
> 
> -------------------
> 
> Service class
> 
> -------------------
> 
> fileParameters.put("Project_Code",projectCode);
> 
> fileParameters.put("Files_ID",filePk);
> 
> responseFileData =
> (List)sqlMap.queryForList("getFileResponses",fileParameters);
> 
>  
> 
> -------------------------------------------------------
> query.xml
> 
> <parameterMap id="FileDetails" class="java.util.Map" >                                               
>                 <parameter property="Project_Code" jdbcType="VARCHAR" />
>                 <parameter property="Files_ID" jdbcType="INT" />
> </parameterMap>
> 
>                                  
> 
> <resultMap id="get_list"
> class="com.hcl.fpTool.pojo.ResponseFilesDataPOJO">
>             <result property="rule_Id" column="Rule_Id"/>           
>             <result property="response" column="Response"/>                        
>             <result property="remarks" column="Remarks"/>                        
> /resultMap>
> 
> <select id="getFileResponses"
> resultClass="com.hcl.fpTool.pojo.ResponseFilesDataPOJO"
> parameterMap="FileDetails" resultMap="get_list">                    
> 
>             select bres.rule_id, bstatic.rule_desc,bres.remarks,
> bres.response 
>             from BusinessRule_ResFiles_Data bres, BusinessRule_StaticData
> bstatic
>             where  project_Code = ? and files_id = ?
>             and bres.rule_id = bstatic.rule_id and bres.rule_id not like
> ('%CD%')                                        
>  </select>
> 
>  
> 
> The problem lies here is 
> 1> i need  to select "bstatic.rule_desc"  from my another table
> "BusinessRule_StaticData"
> 2>i need to select "bres.rule_id" from my another table
> "BusinessRule_ResFiles_Data"
> 
>  so i have a total select of 4 columns based on a join of 2 tables.
> 
> so please help me to correct the "query.xml" file such that i can
> accomplish
> the selection of 4 columns and retrieve it back as a list in my service
> class
> 
> 
> 
> -- 
> View this message in context:
> http://old.nabble.com/Issue-with-join-of-2-tables-in-Ibatis-tp26612861p26612861.html
> Sent from the iBATIS - Dev mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: dev-help@ibatis.apache.org
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: dev-help@ibatis.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Issue-with-join-of-2-tables-in-Ibatis-tp26612861p26621512.html
Sent from the iBATIS - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ibatis.apache.org
For additional commands, e-mail: dev-help@ibatis.apache.org