具有不明确数据库列的嵌套ResultMaps

时间:2013-02-07 17:18:21

标签: ibatis

我在iBatis中有几个嵌套的ResultMaps,它们具有完全相同的数据库列名。这会导致歧义,导致为不同的数据库表检索到错误的结果。

例如, `

<sql namespace="Shipment">

       <resultMap id="consignment" class="com.model.Consignment">
              <result property="consignmentId" column="Consignment_cd" />
              <result property="shipmentCd" column="Shipment_cd" />
              <result property="shipmentUnit" column="Shipment_Unit" />
              <result property="location"  resultMap="Shipment.size" />
       </resultMap>

      <resultMap id="size" class="com.model.Size">
              <result property="consignmentId" column="Consignment_cd" />
              <result property="shipmentCd" column="Shipment_cd" />
              <result property="shipmentUnit" column="Shipment_Unit" />
      </resultMap>

    </sql>

`

现在当我编写我的选择查询时加入Size&amp;寄售表,我得到的货件代码和货件单位返回的值相同,而数据库中这两列的值不同。请注意,我需要在单个查询中提取大小和寄售级别的货件代码和单位。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我发现此问题的唯一解决方案是使用表名或短名称为列名添加前缀。你自己正在编写查询吗?

您的选择看起来像

select consignment.Shipment_cd as consignment_Shipment_cd, 
       size.Shipment_cd as size_Shipment_cd
from consignment
join size on whatever

如果你想在同一个查询中获得很多东西,这是非常重的