我在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;寄售表,我得到的货件代码和货件单位返回的值相同,而数据库中这两列的值不同。请注意,我需要在单个查询中提取大小和寄售级别的货件代码和单位。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
我发现此问题的唯一解决方案是使用表名或短名称为列名添加前缀。你自己正在编写查询吗?
您的选择看起来像
select consignment.Shipment_cd as consignment_Shipment_cd,
size.Shipment_cd as size_Shipment_cd
from consignment
join size on whatever
如果你想在同一个查询中获得很多东西,这是非常重的