Mybatis之解決collection一對多問題(顯示的結(jié)果沒有整合到一起)
先簡單說一下我遇到的問題
我是兩張表關(guān)聯(lián)查詢(其實是主表都全部數(shù)據(jù),但是只保存其他表的ID),主表保存有附表的數(shù)據(jù),但是需要將附表的數(shù)據(jù)整合到主表相同的目錄下,方便前臺調(diào)用。
需要的結(jié)果樣式如下圖1所示,但是獲取到的結(jié)果總是分開的,resultMap和collection節(jié)點內(nèi)容都對了好幾遍,寫的沒問題,但是出現(xiàn)結(jié)果如圖二所示:然后最總發(fā)現(xiàn)是主表的主鍵ID所導(dǎo)致的,因為主表ID每條都不一樣,雖然在SQL中沒查,但是編譯器好像也會獲取,按主鍵區(qū)分,所以不能直接使用原有的主鍵內(nèi)容,組要手動設(shè)置一個,這個設(shè)置的內(nèi)容是你需要劃分的依據(jù)字段,如我是根據(jù)DIAGNOSIS_NO這個字段來劃分數(shù)據(jù)哪些是一組的,所以用這個字段來代替主鍵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": "活動無耐力。"
},
],
"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": "活動無耐力。"
}
],
"PATIENT_ID": "20005369",
"VISIT_ID": "1",
"ADMISSION_DATE": "2020-09-22 10:20",
},
]
}首先先看一下我的兩張表
表一:factorDict

表二:nursingDiagnosis

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總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 并發(fā)編程學(xué)習(xí)筆記之Synchronized簡介
雖然多線程編程極大地提高了效率,但是也會帶來一定的隱患。比如說兩個線程同時往一個數(shù)據(jù)庫表中插入不重復(fù)的數(shù)據(jù),就可能會導(dǎo)致數(shù)據(jù)庫中插入了相同的數(shù)據(jù)。今天我們就來一起討論下線程安全問題,以及Java中提供了什么機制來解決線程安全問題。2016-05-05
詳解Java字節(jié)碼編程之非常好用的javassist
這篇文章主要介紹了詳解Java字節(jié)碼編程之非常好用的javassist,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
如何基于LoadingCache實現(xiàn)Java本地緩存
這篇文章主要介紹了如何基于LoadingCache實現(xiàn)Java本地緩存,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
java警告:源發(fā)行版17 需要目標發(fā)行版17問題及解決
文章介紹了如何解決項目JDK版本不一致的問題,包括修改Project Structure、Modules、Dependencies和Settings中的JDK版本,以及在pom.xml中指定JDK源版本2024-11-11

