我尝试从同一个表中获取2个不同的记录,在一个连接中使用不同的键连接,但我得到相同的对象两次。查询是:
SELECT ISID, ISISIN, ISNMRC, ISTIME, ISTEXT, ISPZDT, ISZADA, ISPOPL,
petitioner.POICO, petitioner.PONMAF, petitioner.POADSI, petitioner.POIDMA,
ADSTR, ADPSC,ADCIT,
bic.BCLCVA, bic.BCBIC, bic.BCPOCP, bic.BCICO,
emitent.PONMAF, emitent.POICO
FROM FVIS00 as isin
left outer join FEPO00 as petitioner on isin.ISZADA = petitioner.POID
left outer join FEAD00 as address on petitioner.POADSI = address.ADID
left outer join FVBC00 as bic on isin.ISISIN = bic.BCCDVA
left outer join FEPO00 as emitent on bic.BCICO = emitent.POICO
结果图:
<resultMap type="ISIN" id="isin">
<result property="id" column="ISID"/>
<result property="isin" column="ISISIN"/>
<result property="user" column="ISNMRC"/>
<result property="created" column="ISTIME"/>
<result property="submited" column="ISPZDT"/>
<result property="text" column="ISTEXT"/>
<result property="fee" column="ISPOPL"/>
<association property="petitioner" javaType="LegalPerson" column="ISZADA">
<result property="ico" column="POICO"/>
<result property="name" column="PONMAF"/>
<association property="address" javaType="Address" column="POADSI">
<result property="street" column="ADSTR"/>
<result property="code" column="ADPSC"/>
<result property="town" column="ADCIT"/>
</association>
</association>
<association property="bic" javaType="BIC" column="BCCDVA">
<result property="shortName" column="BCLCVA"/>
<result property="bic" column="BCBIC"/>
<result property="form" column="BCPOCP"/>
<result property="ico" column="BCICO"/>
<association property="emitent" javaType="LegalPerson" column="BCICO" >
<result property="name" column="PONMAF"/>
<result property="ico" column="POICO"/>
</association>
</association>
</resultMap>
但我总是使用请愿者的值获得 emitent :
## | petitoner | | emitent | ##
CS0005001502 22. 08. 2005 07. 05. 2010 11.22:06.000 580,00 47115629 Burza cenných papírů Praha a.s. 11005 Praha 1 Rybná 14 BAACISBO list 00486949 47115629 Burza cenných papírů Praha a.s. PR_LR převod z SCP
CS0005001544 23. 08. 2005 07. 05. 2010 11.22:06.000 580,00 47115629 Burza cenných papírů Praha a.s. 11005 Praha 1 Rybná 14 BABCISBO list 00486949 47115629 Burza cenných papírů Praha a.s. PR_LR převod z SCP
CS0005002864 24. 08. 2005 07. 05. 2010 11.22:06.000 580,00 00002127 AERO, 19904 Praha 9-letňany Beranových 130 AERO BAAAERO zakn 00002127 00002127 AERO, a.s. PR_LR převod z SCP
CS0005002963 25. 08. 2005 07. 05. 2010 11.22:06.000 580,00 47115629 Burza cenných papírů Praha a.s. 11005 Praha 1 Rybná 14 ČKD BLANSKO BAACKDBK zakn 00002208 47115629 Burza cenných papírů Praha a.s. PR_LR převod z SCP
预期结果:
## | petitoner | | emitent | ##
CS0005001502 2010-05-07-11.22.06.000000 2005-08-22 580,00 47115629 Burza cenných papírù Praha a.s. 11005 Praha 1 Rybná 14 BAACISBO list 00486949 null null PR_LR převod z SCP
CS0005001544 2010-05-07-11.22.06.000000 2005-08-23 580,00 47115629 Burza cenných papírù Praha a.s. 11005 Praha 1 Rybná 14 BABCISBO list 00486949 null null PR_LR převod z SCP
CS0005002864 2010-05-07-11.22.06.000000 2005-08-24 580,00 00002127 AERO, a.s. 19904 Praha 9-letòany Beranových 130 AERO BAAAERO zakn 00002127 00002127 AERO, a.s. PR_LR převod z SCP
CS0005002963 2010-05-07-11.22.06.000000 2005-08-25 580,00 47115629 Burza cenných papírù Praha a.s. 11005 Praha 1 Rybná 14 ČKD BLANSKO BAACKDBK zakn 00002208 00002208 ÈKD Blansko, a.s. PR_LR převod z SCP
正如您所看到的,emitent始终与请愿者具有相同的值,并且连接键对于两个表具有不同的值(字段左侧为emitent)
我做错了什么或是MyBatis中的错误?
提前感谢任何建议。
阿形
答案 0 :(得分:1)
我怀疑它是一个命名冲突问题 - MyBatis无法区分不同的列。你可以重命名冲突列吗?
SELECT ISID, ISISIN, ISNMRC, ISTIME, ISTEXT, ISPZDT, ISZADA, ISPOPL, petitioner.POICO, petitioner.PONMAF, petitioner.POADSI, petitioner.POIDMA, ADSTR, ADPSC,ADCIT, bic.BCLCVA, bic.BCBIC, bic.BCPOCP, bic.BCICO, emitent.PONMAF AS emitentPONMAF, emitent.POICO AS emitentPOICO FROM FVIS00 as isin left outer join FEPO00 as petitioner on isin.ISZADA = petitioner.POID left outer join FEAD00 as address on petitioner.POADSI = address.ADID left outer join FVBC00 as bic on isin.ISISIN = bic.BCCDVA left outer join FEPO00 as emitent on bic.BCICO = emitent.POICO
顺便提一下列和表的隐藏名称! FEPO00
真的吗?! : - )