第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

mybatis一對(duì)多關(guān)系用oracle實(shí)現(xiàn)分頁

mybatis一對(duì)多關(guān)系用oracle實(shí)現(xiàn)分頁

喵喔喔 2018-08-20 10:22:50
有 回復(fù)表,二級(jí)回復(fù)表(像貼吧里的樓中樓回復(fù))。在主貼頁面里,把回復(fù)+二級(jí)回復(fù)一起分頁顯示。大概是這種形式:回復(fù)1-二級(jí)回復(fù)1-二級(jí)回復(fù)2回復(fù)2回復(fù)3回復(fù)類里面有二級(jí)回復(fù)集合,oracle存儲(chǔ)過程里實(shí)現(xiàn)分頁查詢時(shí),先回復(fù) left join 二級(jí)回復(fù),再用rownum分頁。但是界面上顯示的時(shí)候,因?yàn)槲蚁劝岩患?jí)回復(fù)顯示出來后,再遍歷顯示該一級(jí)回復(fù)對(duì)象里的二級(jí)回復(fù)集合,所以第二頁開始會(huì)再顯示一級(jí)回復(fù)的內(nèi)容,就會(huì)超出原本設(shè)置的每頁行數(shù)值。補(bǔ)充:行數(shù)是指回復(fù)+二級(jí)回復(fù)的數(shù)量。所以如果按我這么寫sql的話,一級(jí)跟他的第一個(gè)二級(jí)回復(fù)會(huì)變成一條數(shù)據(jù),而實(shí)際上要求是把他們分成兩行。并且第二頁的話,如果回復(fù)3有二級(jí)回復(fù),會(huì)把回復(fù)3也給顯示出來,就會(huì)變成6行:回復(fù)3--二級(jí)回復(fù)3回復(fù)4回復(fù)5回復(fù)6回復(fù)7想要的效果是去掉回復(fù)3的:--二級(jí)回復(fù)3回復(fù)4回復(fù)5回復(fù)6回復(fù)7想問這種要怎么解決? 還是說表設(shè)計(jì)的不對(duì),應(yīng)該只用一張回復(fù)表?
查看完整描述

2 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

之前做過一個(gè)類似的無限級(jí)的菜單樹,我大概說一下我的思路,具體能不能實(shí)現(xiàn)你可以試試,
主要是通過Map+遞歸實(shí)現(xiàn)層層嵌套,然后我覺的可以對(duì)一級(jí)的回復(fù)坐分頁,結(jié)構(gòu)部分代碼你可以參考下:

public class ResourceTree {

    public static Map<String, Object> mapArray = new LinkedHashMap<String, Object>();

    public List<Resource> menuCommon;

    public List<Object> list = new ArrayList<Object>();


    public List<Object> menuList(List<Resource> resource) {

        this.menuCommon = resource;

        for (Resource x : resource) {

            Map<String, Object> mapArr = new LinkedHashMap<String, Object>();

            if (x.getParentId() == 0) {

                mapArr.put("id", x.getId());

                mapArr.put("text", x.getResourceName());

                mapArr.put("resourceUrl", x.getUrl());

                mapArr.put("resourceParent", x.getParentId());

                mapArr.put("resourceType", x.getType());

                mapArr.put("resourceTag", x.getResourceCode());

                // mapArr.put("resourceIcon", x.getResourceIcon());

                // mapArr.put("resourceParentPath", x.getResourceParentPath());

                mapArr.put("children", menuChild(x.getId()));

                list.add(mapArr);

            }

        }

        return list;

    }


    public List<?> menuChild(int id) {

        List<Object> lists = new ArrayList<Object>();

        for (Resource a : menuCommon) {

            Map<String, Object> childArray = new LinkedHashMap<String, Object>();

            if (a.getParentId() == id) {

                childArray.put("id", a.getId());

                childArray.put("text", a.getResourceName());

                childArray.put("resourceUrl", a.getUrl());

                childArray.put("resourceParent", a.getParentId());

                childArray.put("resourceType", a.getType());

                childArray.put("resourceTag", a.getResourceCode());

                // childArray.put("resourceIcon", a.getResourceIcon());

                // childArray.put("resourceParentPath",    a.getResourceParentPath());

                childArray.put("children", menuChild(a.getId()));

                lists.add(childArray);

            }

        }

        return lists;


    }

}


查看完整回答
反對(duì) 回復(fù) 2018-08-26
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

先按條件查出每一頁的ID數(shù)組 用你分頁的方式
再用ID數(shù)組 查詢出你需要的詳細(xì)數(shù)據(jù)

查看完整回答
反對(duì) 回復(fù) 2018-08-26
  • 2 回答
  • 0 關(guān)注
  • 1397 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)