瀏覽代碼

SqlHelper#getMapper 应该是返回泛型
SqlHelper#execute 增加mapper泛型,支持传入baseMapper子类

mahuibo 2 年之前
父節點
當前提交
eac2370713

+ 3 - 4
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlHelper.java

@@ -281,7 +281,7 @@ public final class SqlHelper {
      * @return Mapper
      */
     @SuppressWarnings("unchecked")
-    public static <T,Mapper extends BaseMapper<T>> BaseMapper<T> getMapper(Class<T> entityClass, SqlSession sqlSession) {
+    public static <T,Mapper extends BaseMapper<T>> Mapper getMapper(Class<T> entityClass, SqlSession sqlSession) {
         Assert.notNull(entityClass, "entityClass can't be null!");
         TableInfo tableInfo = Optional.ofNullable(TableInfoHelper.getTableInfo(entityClass)).orElseThrow(() -> ExceptionUtils.mpe("Can not find TableInfo from Class: \"%s\".", entityClass.getName()));
         Class<?> mapperClass = ClassUtils.toClassConfident(tableInfo.getCurrentNamespace());
@@ -297,11 +297,10 @@ public final class SqlHelper {
      * @param <R>         返回值类型
      * @return 返回lambda执行结果
      */
-    public static <T, R> R execute(Class<T> entityClass, SFunction<BaseMapper<T>, R> sFunction) {
+    public static <T, R,Mapper extends BaseMapper<T>> R execute(Class<T> entityClass, SFunction<Mapper, R> sFunction) {
         SqlSession sqlSession = SqlHelper.sqlSession(entityClass);
         try {
-            BaseMapper<T> baseMapper = SqlHelper.getMapper(entityClass, sqlSession);
-            return sFunction.apply(baseMapper);
+            return sFunction.apply(SqlHelper.getMapper(entityClass, sqlSession));
         } finally {
             SqlSessionUtils.closeSqlSession(sqlSession, GlobalConfigUtils.currentSessionFactory(entityClass));
         }