3

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

例如,`

<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 & Consignment 表的选择查询时,我得到相同的 Shipment Code 和 Shipment Unit 返回值,而数据库中这两列的值不同。请注意,我需要从单个查询中提取的尺寸和寄售级别中的装运代码和单位。

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

4

1 回答 1

1

我发现这个问题的唯一解决方案是在列名前加上表名或短名。您是自己编写查询吗?

您的选择看起来像

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

是的,如果你想在同一个查询中得到很多东西,那是相当繁重的

于 2013-04-17T15:16:10.993 回答