Hi again Peng.

As you can see from my example, the column name remains the same, you'll just 
have to keep aliasing it in your SQL statements son that iBATIS doesn't "get 
confused"...

  ----- Original Message ----- 
  From: Peng Wang 
  To: [email protected] 
  Sent: Monday, February 12, 2007 11:18 AM
  Subject: Re: how to resolve same column/property name when reusing resultMap


  thanks, but what if the legacy database has the field name id and we cannot 
change that?


  On 2/12/07, Carlos Cajina <[EMAIL PROTECTED]> wrote: 
    Hi Peng.

    I think you can try something like this:

    <resultMap id="testPlanResult" class="TestPlan" groupBy="id">
        <result property="id" column="id"/>
        <result property="version" column="version"/> 
        <result property="name" column="name"/>
        <result property="createdDate" column="createdDate" 
javaType="java.util.Date" />
        <result property="release" resultMap=" Release.releaseResult"/>  
    </resultMap>

    <resultMap id="releaseResult" class="Release" >
        <result property="id" column=" r_id"/>
        <result property="version" column="version"/> 
        <result property="name" column="name"/>
     </resultMap> 


    <select id="findTestPlans" resultMap="testPlanResult">
        select 
         tp.id as id,
         tp.version as version,
         tp.name as name,
         tp.createdDate as createdDate,
         r.id as r_id
        from TestPlan tp left join release r on tp.release = r.name
      </select>

    Hope it helps.

    Regards,

    Carlos
      ----- Original Message ----- 
      From: Peng Wang 
      To: [email protected] 
      Sent: Monday, February 12, 2007 3:37 AM
      Subject: how to resolve same column/property name when reusing resultMap

       
      Hi All,

      I am wondering how we can resolve the following naming issues.
      Suppose we have two objects TestPlan and Release, both of them have a 
field named id. If we want to reuse the resultMap, what should we do when we 
create a query against these tables since both tables have the field id, is 
there any way in iBatis to identify which field should be mapped to which 
object? 

      Thanks in advance,
      -Peng

      <resultMap id="testPlanResult" class="TestPlan" groupBy="id">
          <result property="id" column="id"/>
          <result property="version" column="version"/> 
          <result property="name" column="name"/>
          <result property="createdDate" column="createdDate" 
javaType="java.util.Date" />
          <result property="release" resultMap=" Release.releaseResult"/>  
      </resultMap>

      <resultMap id="releaseResult" class="Release" >
          <result property="id" column="id"/>
          <result property="version" column="version"/> 
          <result property="name" column="name"/>
       </resultMap>


      <select id="findTestPlans" resultMap="testPlanResult">
          select 
           tp.id as id, 
           tp.version as version,
           tp.name as name,
           tp.createdDate as createdDate,
            r.id as ?????  
          from TestPlan tp left join release r on tp.release = r.name
        </select>

Reply via email to