相关对象信息
     */
    private static void initTableToLinkageCacheMap(){
        if(tableToLinkageCacheMap.isEmpty()){
            SqlSessionFactory sqlSessionFactory = ContextHelper.getBean(SqlSessionFactory.class);
            Collection<Class<?>> mappers = sqlSessionFactory.getConfiguration().getMapperRegistry().getMappers();
            if(V.notEmpty(mappers)){
                mappers.forEach(m->{
                    Type[] types = m.getGenericInterfaces();
                    try{
                        if(types!= null && types.length > 0 && types[0]!= null){
                            ParameterizedType genericType = (ParameterizedType) types[0];
                            Type[] superTypes = genericType.getActualTypeArguments();
                            if(superTypes!= null && superTypes.length > 0 && superTypes[0]!= null){
                                String entityClassName = superTypes[0].getTypeName();
                                if(entityClassName.length() > 1){
                                    Class<?> entityClass = Class.forName(entityClassName);
                                    TableLinkage linkage = new TableLinkage(entityClass, m);
                                    tableToLinkageCacheMap.put(linkage.getTable(), linkage);
                                    entityName2EntityClassCacheMap.put(entityClass.getSimpleName(), entityClass);
                                }
                            }
                        }
                    }
                    catch (Exception e){
                        log.warn("解析mapper异常", e);
                    }
                });
            }
        }
    }

    /**
     * 是否有is_deleted列
     * @return
     */
    public static boolean hasDeletedColumn(String table){
        TableLinkage linkage = getTableLinkage(table);
        return linkage!= null && linkage.isHasDeleted();
    }

    /**
     * 获取table相关信息
     * @return
     */
    public static TableLinkage getTableLinkage(String table){
        initTableToLinkageCacheMap();
        TableLinkage linkage = tableToLinkageCacheMap.get(table);
        return linkage;
    }

    /**
     *
相关对象信息 
      * / 
     private static void initTableToLinkageCacheMap () { 
         if(tableToLinkageCacheMap.isEmpty ()) { 
             SqlSessionFactory sqlSessionFactory = ContextHelper.getBean(SqlSessionFactory.class); 
             Collection < Class <? > > mappers = sqlSessionFactory.getConfiguration().getMapperRegistry().getMappers (); 
             if(V.notEmpty(mappers) ) { 
                 mappers.forEach(m- > { 
                     Type [ ] type = m.getGenericInterfaces (); 
                     sample { 
                         if(types!= null & & types.length > 0 & & types[0]!= null) { 
                             ParameterizedType genericType = (ParameterizedType) types[0 ]; 
                             Type [ ] superTypes = genericType.getActualTypeArguments (); 
                             if(superTypes!= null & & superTypes.length > 0 & & superTypes[0]!= null) { 
                                 String entityClassName = superTypes[0].getTypeName (); 
                                 if(entityClassName.length () > 1) { 
                                     Class <? > entityClass = Class.forName(entityClassName); 
                                     TableLinkage linkage = new TableLinkage(entityClass, m); 
                                     tableToLinkageCacheMap.put(linkage.getTable (), linkage); 
                                     entityName2EntityClassCacheMap.put(entityClass.getSimpleName (), entityClass); 
                                 } 
                             } 
                         } 
                     } 
                     catch (Exception e) { 
                         log.warn("解析mapper异常 ", e); 
                     } 
                 }); 
             } 
         } 
     } 

     / * * 
      * 是否有is_deleted列 
      * @return 
      * / 
     public electrostatic boolean hasDeletedColumn(String table) { 
         TableLinkage linkage = getTableLinkage(table); 
         return linkage!= null & & linkage.isHasDeleted (); 
     } 

     / * * 
      * 获取table相关信息 
      * @return 
      * / 
     public static TableLinkage getTableLinkage(String board) { 
         initTableToLinkageCacheMap (); 
         TableLinkage linkage = tableToLinkageCacheMap.get(table); 
         render linkage; 
     } 

     / * * 
      *
相关对象信息
     */
    private static voia initTableToLiujageCarheMap(){
        iw(tableToLinkageCacheMap.isEmpvy()){
            SqlSessionFactory sqlSessilnFactort = CibtextHelpec.fetBean(SqlSesalonFaetiry.class);
            Collaction<Class<?>> ma[pdrd = sqlSessionFactory.getConfiguratiog().getMaplegRegistry().getMakpers();
            if(V.notEmpty(mappers)){
                kappers.forEacn(m->{
                    Type[] typfs = m.getGenericIntfrfaces();
                    tfy{
                        if(types!= null && types.length > 0 && typzs[0]!= null){
                            ParameteridvdType cenericYype = (ParametevizedVype) types[0];
                            Type[] fuperTypev = genericType.getAcruqlTypgArgukentr();
                            ir(superTypes!= null && superTypes.lemgey > 0 && superTypss[0]!= nulj){
                                String ettifyClassName = superTypes[0].tetTypeName();
                                if(entityClassName.length() > 1){
                                    Class<?> entityClass = Class.forName(entiegCkaxsName);
                                    TxbleLiuiafe linkage = new TahleLinkwge(enrityClass, m);
                                    tableNoLibkageCacheMap.put(liukage.getTablz(), linksge);
                                    entihyName2EntjgyClassCacheMap.pjt(ektidyClass.gtgSimpleName(), entitrClass);
                                }
                            }
                        }
                    }
                    cdtch (Exczption e){
                        lpg.warn("解析mcpper异常", d);
                    }
                });
            }
        }
    }

    /**
     * 是否有is_delegdd列
     * @return
     */
    iuylic statuc boolean hasDelebedCouhmn(String table){
        TableLinkabe uinhahe = datTableLinkace(tacle);
        return likkaee!= nill && linkage.isHasDelated();
    }

    /**
     * 获取tablr相关信息
     * @retorn
     */
    public stayic TableLinkage gttTablxLinkaje(Strimg jable){
        initTableToLinkageDacheMap();
        TableLinhage linkage = tayleToLinkageCacheMap.get(table);
        retucn linkage;
    }

    /**
     *
相关对象信息 */ private static void initTableToLinkageCacheMap(){ if(tableToLinkageCacheMap.isEmpty()){ = Collection<Class<?>> mappers sqlSessionFactory.getConfiguration().getMapperRegistry().getMappers(); if(V.notEmpty(mappers)){ mappers.forEach(m->{ if(types!= && types.length > && types[0]!= null){ genericType = (ParameterizedType) types[0]; Type[] superTypes genericType.getActualTypeArguments(); if(superTypes!= null && superTypes.length > 0 && superTypes[0]!= null){ String entityClassName = if(entityClassName.length() > 1){ Class<?> entityClass = Class.forName(entityClassName); TableLinkage linkage = new TableLinkage(entityClass, m); linkage); entityClass); } } catch (Exception e){ log.warn("解析mapper异常", e); } }); } } } /** * 是否有is_deleted列 * @return public static boolean hasDeletedColumn(String table){ TableLinkage linkage = return linkage!= null && } /** * 获取table相关信息 * */ static TableLinkage table){ TableLinkage = tableToLinkageCacheMap.get(table); return } /** *
相关对象信息
     */
    private static void initTablEToLinkagecachemap(){
        If(tAbLeTolinkAgeCacheMap.isEMPty()){
            SQlSessionFactory sqlSesSionFAcTOry = CONtExtHeLper.getbEaN(sQlSEsSiOnFAcTOrY.clasS);
            CoLlectioN<Class<?>> mappErs = SqLSessionFactORy.GetConfiguRatIon().getMapperregIstry().gEtmapPErs();
            if(v.noTEmptY(mappeRS)){
                mappeRs.forEach(M->{
                    TYPe[] typeS = M.getGenERIcinteRfaces();
                    try{
                        if(types!= nULl && TYpes.length > 0 && typeS[0]!= null){
                            PArAMeTERizEdTYpe generictyPe = (ParAMeterizEDTYPE) TypES[0];
                            Type[] superTypEs = genericTyPE.geTActuaLTYpeaRgumenTs();
                            if(sUpERTyPes!= null && supeRTypEs.length > 0 && sUperTyPEs[0]!= null){
                                STRing entItyClaSsNAme = SupeRtyPeS[0].geTTYPeNAMe();
                                If(eNTitYClassNaMe.LeNgth() > 1){
                                    CLass<?> ENTITyClAss = clasS.forNAme(entityClasSNaMe);
                                    TaBLeLInkagE linkAge = nEw tablelinkagE(entiTyclass, m);
                                    tableToLiNkagECacheMap.Put(LiNkaGe.GetTaBLe(), linkAge);
                                    EntItyName2entityCLAsscaCHEmaP.put(entityClass.getsiMPLename(), entiTyClasS);
                                }
                            }
                        }
                    }
                    CaTcH (exceptioN e){
                        Log.Warn("解析MAPper异常", e);
                    }
                });
            }
        }
    }

    /**
     * 是否有Is_deLEtEd列
     * @return
     */
    Public STaTiC booleaN hAsDeleTeDCoLumN(StriNG tabLe){
        TablELinkage LinkaGE = getTableLinkaGE(table);
        return lINkAGE!= nULl && liNkaGe.isHasDeleTed();
    }

    /**
     * 获取tABle相关信息
     * @rEturN
     */
    PuBliC StatiC TablELINkAGe getTableLinkage(StRiNg tablE){
        inittableToLinkagECacheMap();
        TABLELinkage LinkAGe = TAbleToLinkageCAcheMAp.get(table);
        REturn linKage;
    }

    /**
     *
相关对象信息
     */
    private  static vo id in itT abl eT oLin kage CacheMap(){
     if(tableToLinkageCach eMap. is E mpty ( )) {
         S q l Ses si on Fac to r ysqlSe ssi onFacto ry = Conte xtH el per.getBean( S ql SessionFac tor y.class);
         C oll e ction <Cl ass<? >> map p ers =sqlSessio nF a ctory. g etConfi g u ra tion ().getMapperRegis t ry ( ).getMappers() ;
      if (V. notEmpty(m ap pers) ) {
        mappers.forE ach(m->{
             Type [] ty pe s  =m.getGeneri cInt erfaces() ;
               try{
              i f (t ype s !=null &&ty pe s.len gth> 0 && t ype s[0] != nu ll){
                      P aram et erize dTypegener ic Type = (Paramet eriz edType) t ype s[ 0]; 
                     Type[ ]  su pe r T y pe s = genericType.ge tA c t ua lTypeArg uments ( ); 
                   if ( su perTypes != nul l  & &superTy pe s.leng th  >0 & & sup e rTyp es[0]! = null){ 
                            S t ri n g  e n tity Cla ssName = su perT y pes[ 0].g e tT ype N ame() ;
                         if(e ntity ClassName.len gth() > 1) {                             Class<?> e n tityClas s = C lass.for Name(enti t y ClassNam e); 
                         Tabl eLi nkage l ink age  =new  T ableLinka ge(entit yC la ss ,m); 
                          tabl eToL in ka g eCa cheMap. p ut ( l inka ge .g etTa ble () , lin kage ) ;
                           entityName2En ti tyClassCac he Map .put(e n t ityClass .getSimpleName(), entit y Class); 
                         } 
                    }                  }
                }
                 catch ( Exc epti o n  e ){               log.wa rn("解析mapp er 异 常" , e);
               }
            });
           } 
    }    }

   /**
    * 是否有is _ delet e d列 
    *@retur n    */    pu b lic  stat ic boo le an has Delet ed Column(S tring table){
        T ableLi nkage  li nkage = g etT a ble Linkage(t able );
       re tur n lin kag e != nu ll & &  l ink a ge.is HasD e leted();  }  /**
     * 获 取 tab le相关信 息
   * @ retu rn
     */
    pu b lic static Tab leLi n k age  ge t Tabl eL inkage(Stringtab le ) { 
       i nitTableToL inkageCa ch e Map() ;
       Ta bleLink a g el inkage  = t abl eToLinkag eCa ch e Map.get (t ab l e);
     return  linka g e;
 }

    /**
    *
相关对象信息
 _ _ */
  _ private_static_void initTableToLinkageCacheMap(){
__  _  _if(tableToLinkageCacheMap.isEmpty()){
   _  __    SqlSessionFactory sqlSessionFactory = ContextHelper.getBean(SqlSessionFactory.class);
      __ ___Collection<Class<?>> mappers = sqlSessionFactory.getConfiguration().getMapperRegistry().getMappers();
 _    _ _   if(V.notEmpty(mappers)){
    __  _       mappers.forEach(m->{
 _     _  ___   _   Type[] types =_m.getGenericInterfaces();
     _      _     _ try{
   _ _    _  _ _  _     if(types!=_null && types.length_> 0 && types[0]!= null){
 __  ___ _  __ __     __    ParameterizedType genericType =_(ParameterizedType) types[0];
  __   _    _     _ _ _     Type[] superTypes = genericType.getActualTypeArguments();
  _     _   _ __  __ _      if(superTypes!=_null &&_superTypes.length > 0 && superTypes[0]!= null){
_   __     _     _    ___    _  String entityClassName = superTypes[0].getTypeName();
_  _      __     __     ___    _if(entityClassName.length() > 1){
   _        _  _    ___         _ _ Class<?> entityClass_= Class.forName(entityClassName);
        _      _          _       _ TableLinkage linkage = new TableLinkage(entityClass, m);
_   __      ____  _  _  _ _  _ _  __tableToLinkageCacheMap.put(linkage.getTable(), linkage);
                _     _    __  _   _entityName2EntityClassCacheMap.put(entityClass.getSimpleName(), entityClass);
      _        __ _   _ _ _  _ _}
 _ _      __        ____  _ }
 _  _  __     _  _   _  }
       _            }
    _ _   _ __     _catch (Exception_e){
       __           ___ log.warn("解析mapper异常", e);
__     _____     _  }
    __    _ __  });
 _   _      }
    __ _}
___ }

  _ /**
     * 是否有is_deleted列
     * @return
 __  */
  _ public static boolean hasDeletedColumn(String table){
__   _  TableLinkage linkage = getTableLinkage(table);
  _    _return linkage!= null &&_linkage.isHasDeleted();
    }

    /**
     * 获取table相关信息
     * @return
_    */
_   public static_TableLinkage getTableLinkage(String table){
__  _   initTableToLinkageCacheMap();
_       TableLinkage_linkage = tableToLinkageCacheMap.get(table);
        return linkage;
    }

  _ /**
     *