請(qǐng)問(wèn)老師,mybatis-plus中有多表連接動(dòng)態(tài)條件查詢的優(yōu)化方案嗎
jpa對(duì)單表操作很方便,但是項(xiàng)目中如果經(jīng)常出現(xiàn)表連接動(dòng)態(tài)條件分頁(yè)查詢的需求,按mybatis的方式就是去xml中寫sql實(shí)現(xiàn),比較繁瑣,也很重要,老師能否講解一下遇到這種需求怎么辦,有沒有更優(yōu)美的做法可以使用呢
jpa對(duì)單表操作很方便,但是項(xiàng)目中如果經(jīng)常出現(xiàn)表連接動(dòng)態(tài)條件分頁(yè)查詢的需求,按mybatis的方式就是去xml中寫sql實(shí)現(xiàn),比較繁瑣,也很重要,老師能否講解一下遇到這種需求怎么辦,有沒有更優(yōu)美的做法可以使用呢
2020-04-25
舉報(bào)
2020-04-28
? ? ? 多表聯(lián)查可以既使用xml或@select注解的方式寫sql,然后還能使用MP的條件構(gòu)造器,這種方式,我個(gè)人認(rèn)為挺優(yōu)雅的。給你舉個(gè)例子:
? ? ? ?MP自帶的CRUD操作是針對(duì)單表操作的,如果要操作多表,可以寫自定義sql。
給你舉個(gè)使用條件構(gòu)造器的多表sql例子,可以寫在xml中或注解中,下面的是用xml的寫法:
對(duì)應(yīng)的Mapper接口中的方法定義:
? ? ? ?返回值可以是VO。也可以是實(shí)體類,但要要記住,如果用實(shí)體類接返回值,實(shí)體中非該實(shí)體對(duì)應(yīng)表的數(shù)據(jù)庫(kù)字段的屬性上要標(biāo)注@TableField(exist = false),如果使用了條件構(gòu)造器,條件構(gòu)造器的字段名別忘了帶別名。