1


1 つの結合で異なるキーで結合された同じテーブルから 2 つの異なるレコードを取得しようとしましたが、同じオブジェクトを 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>

しかし、私は常にpetitionerの値で発散ます:

##                                                                   |                   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 

ご覧のとおり、emitter は常にペティショナと同じ値を持ち、結合キーは両方のテーブルで異なる値を持ちます (フィールドは emitent に残されています)。

何か間違っているのでしょうか、それとも MyBatis のバグですか?

ご提案いただきありがとうございます。

あがた

4

1 に答える 1

1

私の疑いは、名前の衝突の問題であるということです.MyBatisは異なる列を区別できません. 衝突している列の名前を変更できますか?

ISID、ISISIN、ISNMRC、ISTIME、ISTEXT、ISPZDT、ISZADA、ISPOPL、
     請願者.POICO、請願者.PONMAF、請願者.POADSI、請願者.POIDMA、
     ADSTR、ADPSC、ADCIT、
     bic.BCLCVA、bic.BCBIC、bic.BCPOCP、bic.BCICO、
     emitent.PONMAF AS emitentPONMAF , emitent.POICO AS emitentPOICO
    FROM FVIS00 as isin
    isin.ISZADA = petitioner.POID のペティショナとしての左外部結合 FEPO00
    petitioner.POADSI = address.ADID のアドレスとして左外部結合 FEAD00
    isin.ISISIN = bic.BCCDVA の bic として左外部結合 FVBC00
    bic.BCICO = emitent.POICO のエミッターとして FEPO00 を左外部結合

ちなみに、列とテーブルの恐ろしい名前!FEPO00本当?!:-)

于 2013-11-01T13:17:21.247 に答える