最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis返回結(jié)果多重嵌套List方式

 更新時(shí)間:2026年01月10日 14:44:20   作者:柿餅zzzz  
文章介紹了在實(shí)際開發(fā)中處理JSON多重嵌套返回格式的方法,通過定義`resultMap`并創(chuàng)建相應(yīng)的實(shí)體類(如`PersonPosGroup`和`PersonData`)來實(shí)現(xiàn)自動映射,SQL查詢代碼會根據(jù)層級關(guān)系自動映射出查詢結(jié)果

Mybatis返回結(jié)果多重嵌套List

實(shí)際開發(fā)中,在定義接口的返回格式時(shí)往往會遇到返回json多重嵌套的情況:

我們可以通過resultMap自動映射來實(shí)現(xiàn)

    <resultMap type="PersonDetailsVo" id="personDetailsMap">
        <result column="sequence_id" property="sequenceId" />
        <collection property="personPosGroup" javaType="java.util.List" ofType="com.ruoyi.project.business.main.domain.PersonPosGroup">
            <result column="camera_id" property="cameraId" />
            <collection property="personData" javaType="java.util.List" ofType="com.ruoyi.project.business.main.domain.PersonData">
                <result column="person_id" property="personId" />
                <result column="position_info" property="positionInfo" />
                <result column="worker_type" property="workerType" />
            </collection >
        </collection >
    </resultMap>

比如這樣的resultMap結(jié)構(gòu)就實(shí)現(xiàn)了三層嵌套,我們要注意創(chuàng)建PersonPosGroup、PersonData實(shí)體類來完成映射。

PersonPosGroup

public class PersonPosGroup implements Serializable {

    private String cameraId;
    private List<PersonData> personData;

    public String getCameraId() {
        return cameraId;
    }

    public void setCameraId(String cameraId) {
        this.cameraId = cameraId;
    }

    public List<PersonData> getPersonData() {
        return personData;
    }

    public void setPersonData(List<PersonData> personData) {
        this.personData = personData;
    }
}

PersonData

public class PersonData implements Serializable {

    private String personId;
    private String workerType;
    private JSONObject positionInfo;

    public String getPersonId() {
        return personId;
    }

    public void setPersonId(String personId) {
        this.personId = personId;
    }

    public String getWorkerType() {
        return workerType;
    }

    public void setWorkerType(String workerType) {
        this.workerType = workerType;
    }

    public JSONObject getPositionInfo() {
        return positionInfo;
    }

    public void setPositionInfo(String positionInfo) {
        this.positionInfo = JSONObject.parseObject(positionInfo);
    }
}

sql代碼

<select id="selectPersonInfoBySequenceId" parameterType="java.util.Map" resultMap="personDetailsMap">
        select
            sequence_id,
            camera_id,
            person_id,
            position_info,
            worker_type
        from video_person_details_info
        where
            1=1
            <if test="video_id != null  and video_id != ''"> and video_id = #{video_id}</if>
            <if test="start_sequence_id != null">
              and sequence_id >= #{start_sequence_id} and  #{end_sequence_id} > sequence_id
            </if>
    </select>

查詢數(shù)據(jù)會根據(jù)層級關(guān)系自動映射出查詢結(jié)果

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)Huffman編碼的示例代碼

    Java實(shí)現(xiàn)Huffman編碼的示例代碼

    Huffman編碼是一種編碼方式,本文主要介紹了Java實(shí)現(xiàn)Huffman編碼的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 解析Nacos的API居然存在這么嚴(yán)重的漏洞

    解析Nacos的API居然存在這么嚴(yán)重的漏洞

    這篇文章主要介紹了Nacos的API居然存在這么嚴(yán)重的漏洞,Nacos為我們提供了大量API,但是這些API默認(rèn)是沒有開啟認(rèn)證的,直接可以訪問,針對于這一點(diǎn)我們也都可以去驗(yàn)證一下,本文給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • SpringBoot?中使用?Validation?校驗(yàn)參數(shù)的方法詳解

    SpringBoot?中使用?Validation?校驗(yàn)參數(shù)的方法詳解

    Validation?是用于檢查程序代碼中參數(shù)的有效性的框架,作為?Spring?框架中的一個(gè)參數(shù)校驗(yàn)工具,集成在?spring-context?包中,這篇文章主要介紹了SpringBoot?中使用?Validation?校驗(yàn)參數(shù),需要的朋友可以參考下
    2022-05-05
  • mybatis中的緩存問題解析

    mybatis中的緩存問題解析

    本篇文章主要介紹了mybatis中的緩存問題解析,詳細(xì)的介紹了關(guān)于mybatis的一級緩存和二級緩存,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • SpringBoot2零基礎(chǔ)到精通之異常處理與web原生組件注入

    SpringBoot2零基礎(chǔ)到精通之異常處理與web原生組件注入

    SpringBoot是Spring全家桶的成員之一,基于約定優(yōu)于配置的思想(即有約定默認(rèn)值,在不配置的情況下會使用默認(rèn)值,在配置文件下配置的話會使用配置的值)。SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡化Spring的一種快速開發(fā)的腳手架
    2022-03-03
  • JAVA調(diào)用JavaScript方法代碼示例

    JAVA調(diào)用JavaScript方法代碼示例

    之前在一次機(jī)緣巧合的情況下,需要時(shí)用JAVA執(zhí)行js方法,查閱了一些文檔,找到了相關(guān)解決方法,這里和大家分享一下,這篇文章主要給大家介紹了關(guān)于JAVA調(diào)用JavaScript方法的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • Java8對List排序的方法大全

    Java8對List排序的方法大全

    這篇文章主要給大家介紹了關(guān)于Java8對List排序的方法大全,其實(shí)Java針對數(shù)組和List的排序都有實(shí)現(xiàn),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • 淺談Java開發(fā)架構(gòu)之領(lǐng)域驅(qū)動設(shè)計(jì)DDD落地

    淺談Java開發(fā)架構(gòu)之領(lǐng)域驅(qū)動設(shè)計(jì)DDD落地

    DDD(Domain-Driven Design 領(lǐng)域驅(qū)動設(shè)計(jì))是由Eric Evans最先提出,目的是對軟件所涉及到的領(lǐng)域進(jìn)行建模,以應(yīng)對系統(tǒng)規(guī)模過大時(shí)引起的軟件復(fù)雜性的問題
    2021-06-06
  • 詳解RabbitMQ中延遲隊(duì)列結(jié)合業(yè)務(wù)場景的使用

    詳解RabbitMQ中延遲隊(duì)列結(jié)合業(yè)務(wù)場景的使用

    這篇文章主要介紹了詳解RabbitMQ中延遲隊(duì)列結(jié)合業(yè)務(wù)場景的使用,延遲隊(duì)列中的元素都是帶有時(shí)間屬性的,延遲隊(duì)列就是用來存放需要在指定時(shí)間被處理的元素的隊(duì)列,需要的朋友可以參考下
    2023-05-05
  • 淺談Java中GuavaCache返回Null的注意事項(xiàng)

    淺談Java中GuavaCache返回Null的注意事項(xiàng)

    Guava在實(shí)際的Java后端項(xiàng)目中應(yīng)用的場景還是比較多的,比如限流,緩存,容器操作之類的,本文主要介紹了GuavaCache返回Null的注意事項(xiàng),感興趣的可以了解一下
    2021-10-10

最新評論

杭锦旗| 那曲县| 金阳县| 高台县| 神木县| 稻城县| 侯马市| 江油市| 隆化县| 尉氏县| 吉木乃县| 库车县| 阳信县| 类乌齐县| 姚安县| 邢台县| 大悟县| 安康市| 辽宁省| 安图县| 古田县| 潼关县| 叶城县| 云林县| 牡丹江市| 始兴县| 射洪县| 云安县| 桂阳县| 上杭县| 邹城市| 奉节县| 咸丰县| 泉州市| 张家港市| 东平县| 榆树市| 临泽县| 高密市| 张家港市| 信丰县|