<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      只為成功找方向,不為失敗找借口

      每天都不能停止前進(jìn)的腳步
        博客園  :: 首頁(yè)  :: 新隨筆  :: 聯(lián)系 :: 訂閱 訂閱  :: 管理

      場(chǎng)景:

      應(yīng)用MyBatis Plus 和通用Mapper

      繼承自ServiceImpl實(shí)現(xiàn)對(duì)Service里的方法進(jìn)行包裝再處理。

       

      public interface IServiceBase2<T extends AbstractDTO> {
      }
      public class ServiceBaseImpl2<M extends BaseMapper<P>,P extends Model<P>,D extends AbstractDTO> extends ServiceImpl<M,P>  implements IServiceBase2<D> {
      
      
          private Class<P> poClazz;
          private Class<D> dtoClazz;
      
          public ServiceBaseImpl2(){
              Type superClass = getClass().getGenericSuperclass();
              if (superClass instanceof ParameterizedType) {
                  ParameterizedType parameterizedType = (ParameterizedType) superClass;
      
                  Type[] types = parameterizedType.getActualTypeArguments();
                  if (types != null && types.length == 3) {
                      if (types[1] instanceof Class) {
                          poClazz = (Class<P>) types[1];
                      }
                      if (types[2] instanceof Class) {
                          dtoClazz = (Class<D>) types[2];
                      }
                  }
              }
          }
      
      
          @Override
          public D selectByIdDTO(Serializable var1) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
      
              P p = super.selectById(var1);
      
              String classPath = poClazz.getName() + "POJOMapperImpl";// "com.api.modular.clinicalcase.dto.mapper.ClinicalcasePOJOMapperImpl";
              classPath = classPath.replace("model","dto.mapper");
              Class mapperClazz = Class.forName(classPath);
      
              Object newInstance = mapperClazz.newInstance();
              Method[] methods = mapperClazz.getMethods();
      
              Method method = mapperClazz.getMethod("doToDto", poClazz);
      
              D result = (D) method.invoke(newInstance, p);
              return result;
          }
      }

       

      錯(cuò)誤:

      啟動(dòng)項(xiàng)目報(bào)錯(cuò):No qualifying bean of type 'com.baomidou.mybatisplus.mapper.BaseMapper<?>' available: expected single matching bean but found 4

      解決:

      將ServiceBaseImpl 更改為抽象類(lèi)

      public abstract class ServiceBaseImpl2<M extends BaseMapper<P>,P extends Model<P>,D extends AbstractDTO> extends ServiceImpl<M,P>  implements IServiceBase2<D> {
      }

       

      主站蜘蛛池模板: 久久国产乱子伦免费精品无码| 亚洲午夜久久久影院伊人| 18禁无遮挡啪啪无码网站| 午夜A理论片在线播放| 欧美日韩在线视频| 国产偷国产偷亚洲高清午夜| 国产精品一区二区人人爽| 视频一区二区三区中文字幕狠狠| 日韩人妻无码一区二区三区99| 欧美日产国产精品| 婷婷久久香蕉五月综合加勒比| 五月婷婷中文字幕| 久久欧洲精品成av人片| 青青青爽在线视频观看| 砀山县| 韩国三级网一区二区三区| 久久精品道一区二区三区| 久久婷婷综合色丁香五月| 欧洲无码一区二区三区在线观看 | 国产精品久久无中文字幕| 亚洲V天堂V手机在线| 国产成人无码A区在线观看视频| 久久精品国产亚洲精品色婷婷| 国产精品人成在线观看免费| 国产成人一区二区三区视频免费| 国产网友愉拍精品视频手机 | 色综合久久精品亚洲国产| 精品国产成人三级在线观看 | 不卡一区二区三区在线视频| 国产精品原创不卡在线| 国产亚洲av夜间福利香蕉149| 激情文学一区二区国产区| 九九热视频在线免费观看| 国产999久久高清免费观看| 免费看黄色亚洲一区久久| 九九九国产| 日本一道一区二区视频| 久久亚洲精品天天综合网| 国产成人免费一区二区三区| 日韩人妻无码一区二区三区99| 内射合集对白在线|