MyBatisPlus分頁多表關聯查詢 - SegmentFault 思否
下面的都是單表,如果要在多表聯查的基礎上使用mybatis-plus提供的LambdaQueryWrapper等查詢條件包裹器對象,參看上面的鏈接
總而言之,在service使用LambdaQueryWrapper拼接條件查詢后,其中的關鍵 lambda執行方法需要執行我們自己在mapper接口定義的方法,然后在方法上使用注解引入自定義的sql語句 但是不需要寫條件部分 即where部分——直接引用LambdaQueryWrapper對象給出的就行
public interface GameQueryMapper extends BaseMapper<GameQuery> {
String querySql = "SELECT a.*, b.org_id FROM t_game AS a LEFT JOIN t_game_game_org AS b ON b.game_id = a.id ";
String wrapperSql = "SELECT * from ( " + querySql + " ) AS q ${ew.customSqlSegment}";
/**
* 分頁查詢
*/
@Select(wrapperSql)
Page<GameQuery> page(Page page, @Param("ew") Wrapper queryWrapper);
/**
* 普通查詢
*/
@Select(wrapperSql)
List<GameQuery> list(@Param("ew") Wrapper queryWrapper);
/**
* 單獨查詢
*/
@Select(wrapperSql)
QyyOrgQuery one(@Param("ew") Wrapper queryWrapper);
}
我個人的項目中的實際應用
service接口的方法
|
service實現類
|
mapper接口
|