mybatis-嵌套(关联)查询/ N+1 / 延迟加载
我們?cè)诓樵?xún)業(yè)務(wù)數(shù)據(jù)的時(shí)候經(jīng)常會(huì)遇到跨表關(guān)聯(lián)查詢(xún)的情況,比如查詢(xún)員工就會(huì)關(guān)聯(lián)部門(mén)(一對(duì)一),查詢(xún)成績(jī)就會(huì)關(guān)聯(lián)課程(一對(duì)一),查詢(xún)訂單就會(huì)關(guān)聯(lián)商品(一對(duì)多),等等。
我們映射結(jié)果有兩個(gè)標(biāo)簽,一個(gè)是resultType,一個(gè)是resultMap。
resultType 是select 標(biāo)簽的一個(gè)屬性,適用于返回JDK 類(lèi)型(比如Integer、String等等)和實(shí)體類(lèi)。這種情況下結(jié)果集的列和實(shí)體類(lèi)的屬性可以直接映射。如果返回的字段無(wú)法直接映射,就要用resultMap 來(lái)建立映射關(guān)系。
對(duì)于關(guān)聯(lián)查詢(xún)的這種情況,通常不能用resultType 來(lái)映射。用resultMap 映射,要么就是修改dto(Data Transfer Object),在里面增加字段,這個(gè)會(huì)導(dǎo)致增加很多無(wú)關(guān)的字段。要么就是引用關(guān)聯(lián)的對(duì)象,比如Blog 里面包含了一個(gè)Author 對(duì)象,這種情況下就要用到關(guān)聯(lián)查詢(xún)(association,或者嵌套查詢(xún)),MyBatis 可以幫我們自動(dòng)做結(jié)果的映射。
?
總結(jié)
以上是生活随笔為你收集整理的mybatis-嵌套(关联)查询/ N+1 / 延迟加载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mybatis-Batch Execut
- 下一篇: mybatis-一对一的关联查询有两种配