package com.github.yulichang.method; import com.baomidou.mybatisplus.core.metadata.TableInfo; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.SqlSource; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} * * @author yulichang */ public class SelectJoinPage extends MPJAbstractMethod { public SelectJoinPage() { super(SqlMethod.SELECT_JOIN_PAGE.getMethod()); } @SuppressWarnings("unused") public SelectJoinPage(String name) { super(name); } @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { SqlMethod sqlMethod = SqlMethod.SELECT_JOIN_PAGE; String sql = String.format(sqlMethod.getSql(), sqlFirst(), sqlDistinct(), sqlSelectColumns(tableInfo, true), tableInfo.getTableName(), sqlAlias(), sqlFrom(), sqlWhereEntityWrapper(true, tableInfo), sqlComment()); SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, MPJResultType.class); } }