溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mybatis怎么解決collection一對(duì)多問題

發(fā)布時(shí)間:2023-03-30 11:08:06 來源:億速云 閱讀:133 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Mybatis怎么解決collection一對(duì)多問題的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Mybatis怎么解決collection一對(duì)多問題文章都會(huì)有所收獲,下面我們一起來看看吧。

    先簡單說一下我遇到的問題

    我是兩張表關(guān)聯(lián)查詢(其實(shí)是主表都全部數(shù)據(jù),但是只保存其他表的ID),主表保存有附表的數(shù)據(jù),但是需要將附表的數(shù)據(jù)整合到主表相同的目錄下,方便前臺(tái)調(diào)用。

    需要的結(jié)果樣式如下圖1所示,但是獲取到的結(jié)果總是分開的,resultMap和collection節(jié)點(diǎn)內(nèi)容都對(duì)了好幾遍,寫的沒問題,但是出現(xiàn)結(jié)果如圖二所示:然后最總發(fā)現(xiàn)是主表的主鍵ID所導(dǎo)致的,因?yàn)橹鞅鞩D每條都不一樣,雖然在SQL中沒查,但是編譯器好像也會(huì)獲取,按主鍵區(qū)分,所以不能直接使用原有的主鍵內(nèi)容,組要手動(dòng)設(shè)置一個(gè),這個(gè)設(shè)置的內(nèi)容是你需要?jiǎng)澐值囊罁?jù)字段,如我是根據(jù)DIAGNOSIS_NO這個(gè)字段來劃分?jǐn)?shù)據(jù)哪些是一組的,所以用這個(gè)字段來代替主鍵id。

    圖一

    {
        "code": 200,
        "msg": "成功獲取",
        "data": [
            {
                "id": "",
                "nursingplanDtoList": [
                    {
                        "id": "",
                        "DIAGNOSIS_NO": "38.0",
                        "FACTOR_NO": 24,
                        "DIAGNOSIS_FACTOR": "疼痛不適。"
                    },
                    {
                        "id": "",
                        "DIAGNOSIS_NO": "38.0",
                        "FACTOR_NO": 25,
                        "DIAGNOSIS_FACTOR": "活動(dòng)無耐力。"
                    },
                ],
                "PATIENT_ID": "20005369",
                "VISIT_ID": "1",
                "ADMISSION_DATE": "2020-09-22 10:20",
            }
        ]
    }

    圖二

    {
        "code": 200,
        "msg": "成功獲取",
        "data": [
            {
                "id": "",
                "nursingplanDtoList": [
                    {
                        "id": "",
                        "DIAGNOSIS_NO": "38.0",
                        "FACTOR_NO": 24,
                        "DIAGNOSIS_FACTOR": "疼痛不適。"
                    }
                ],
                "PATIENT_ID": "20005369",
                "VISIT_ID": "1",
                "ADMISSION_DATE": "2020-09-22 10:20",
            },
            {
                "id": "",
                "nursingplanDtoList": [
                    {
                        "id": "",
                        "DIAGNOSIS_NO": "38.0",
                        "FACTOR_NO": 25,
                        "DIAGNOSIS_FACTOR": "活動(dòng)無耐力。"
                    }
                ],
                "PATIENT_ID": "20005369",
                "VISIT_ID": "1",
                "ADMISSION_DATE": "2020-09-22 10:20",
            },
        ]
    }

    首先先看一下我的兩張表

    表一:factorDict

    Mybatis怎么解決collection一對(duì)多問題

    表二:nursingDiagnosis

    Mybatis怎么解決collection一對(duì)多問題

    Sql查詢語句

            SELECT
            n.DIAGNOSIS_NO as id,
            n.PATIENT_ID,
            n.VISIT_ID,
            n.ADMISSION_DATE,
            n.DIAGNOSIS_NO,
            n.DIAGNOSIS_STATUS,
            n.DIAGNOSIS_SORT,
            n.EXPECTED_TARGET,
            n.START_DATE,
            n.STOP_DATE,
            n.FACTOR_ID as FACTOR_NO,
            n.FACTOR_STATUS,
            f.DIAGNOSIS_FACTOR
            FROM
            nursingDiagnosis n LEFT JOIN factorDcit f on n.FACTOR_ID=f.id
            WHERE
            n.PATIENT_ID = #{Patient_id}
            AND n.VISIT_ID = #{Visit_id}
            AND n.ADMISSION_DATE=#{Admission_Date}
            AND n.DIAGNOSIS_NO='38.0'
            ORDER BY
            n.DIAGNOSIS_STATUS DESC,
            n.DIAGNOSIS_SORT

    關(guān)于“Mybatis怎么解決collection一對(duì)多問題”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Mybatis怎么解決collection一對(duì)多問題”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI