Mybatis複雜resultMap之聚合巢狀

2021-10-05 08:30:14 字數 1839 閱讀 7379

<

select id=

"queryprojecttaskvobyid" resultmap=

"projecttaskvo"

>

select

*from nst_project_task where id =

#<

/select

>

<

select id=

"selectdailyreportbytaskid" resultmap=

"dailyreportvo"

>

select

*from nst_daily_report where task_id =

#<

/select

>

<

select id=

"selectdailyreportcommentbyreportid" resulttype=

"modules.buz.entity.dailyreportcomment"

>

select

*from nst_daily_report_comment where report_id =

#<

/select

>

"projecttaskvo"

type

="true"

>

<

!="id" jdbctype=

"varchar" property=

"id"

/>

"dailyreportvolist"

oftype=

"modules.buz.vo.dailyreportvo"

select

="selectdailyreportbytaskid"

column=""

>

<

/collection>

<

/resultmap>

"dailyreportvo"

type

="true"

>

<

!="id" jdbctype=

"varchar" property=

"id"

/>

"dailyreportcommentlist"

oftype=

"modules.buz.entity.dailyreportcomment"

select

="selectdailyreportcommentbyreportid"

column=""

>

<

/collection>

<

/resultmap>

業務層方法 projecttaskvo projecttaskvo = projecttaskservice.queryprojecttaskvobyid(id);

idea 中檢視這三個類的聚合關係如下(直接乙個乙個從目錄拖到類圖區域,

然後挑選頂部的按鈕來決定顯示哪些詳情)

或者通過這樣加入類圖

我們這裡沒有採用 leftjion的形式而是巢狀select,

原因是我們要的是一行, 不是多行

據說可以查出多行(笛卡爾積), 交給mybatis自動處理成一條資料,但是我試了沒成功, 即便成功了, 也降低了效能

解決Mybatis中result標籤識別不了的情況

目錄 有個user類 在mybatis result標籤中這樣對映 這是就會發現proper程式設計客棧ty name 這個報紅 這是因為大寫不識別的原因,大寫開頭 它會變成 l 將name 重新www.cppcns.com寫成name就可以 id 和 re 都將乙個列的值對映到乙個簡單資料型別 字...

Mybatis 複雜物件resultMap

資料物件含有普通屬性,一對一物件,一對多物件 2種情況 單一主鍵和復合主鍵 下面是resultmap的定義 普通屬性省略說明 一對一屬性productioncompany 一對多屬性goodsnutrientlist 復合主鍵,返回的複雜物件內有資料 一對多屬性liquorgoodscciclist...

返回物件result封裝

我們呼叫服務返回的型別有string,list,map,bean,int,boolean等型別,可以統一成result物件返回,自帶生成json字串方法,使用起來非常方便,如下 import tf56.sofa.serializer.jsongenerateutil 返回物件result封裝 ath...