开发者社区> 问答> 正文

jfinal Dbkit.replaceFormatSqlOrderBy(sql?报错

@jfinal  比如

order by charindex(rtRim(res.ReqDepartment),'JZ,MZ,W1,W2,W3,W4,Z1,Z2,Z3,Z4,JH,H1,H2,H3,H4')

用sqlkit.replaceFormatSqlOrderBy后只能去掉order by,直接导致paginate报错。

展开
收起
爱吃鱼的程序员 2020-06-14 14:50:10 572 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    在线等。急


    返程补丁。。。。。在正则表达式中加入()'可以解决,但是还要自己编译,这个是在上一版本中忘了升级了,暂时可以改下 sql语句,让其可以被replace掉,下一版升下正则源码还有判断
     
      if(index>sql.toLowerCase().lastIndexOf(
      
       ")"))
      
     

    这里的)是orderby里的),所以判断为false。。

    引用来自“linxp”的评论

    源码还有判断
      
       if(index>sql.toLowerCase().lastIndexOf(
       
        ")"))
       
      

    这里的)是orderby里的),所以判断为false。。

    就在DbKit.replaceFormatSqlOrderBy(Stringsql)里,我在oscgit上下的masterzip
    Stringorder=sql.substring(index);Patternpattern=Pattern.
      
       compile(
       
        #008000;font-weight:bold;">"
        
         000080;font-weight:bold;">\\
         
          )");Matchermatcher=pattern.matcher(order);
          
           intcount=
           
            0;
            
             while(matcher.find()){count++;}Patternpattern2=Pattern.
             
              compile(
              
               #008000;font-weight:bold;">"
               
                000080;font-weight:bold;">\\
                
                 (");Matchermatcher2=pattern2.matcher(order);
                 
                  intcount2=
                  
                   0;
                   
                    while(matcher2.find()){count2++;}
                    
                     if(index>sql.toLowerCase().lastIndexOf(
                     
                      ")")||count==count2){Stringsql1=sql.substring(
                      
                       0,index);Stringsql2=sql.substring(index);sql2=sql2.replaceAll(
                       
                        "[oO][rR][dD][eE][rR][bB][yY][
                        
                         \\
                         
                          #008000;font-weight:bold;">(
                          
                           000080;font-weight:bold;">\\
                           
                            #008000;font-weight:bold;">),'
                            
                             000080;font-weight:bold;">\u4e00
                             
                              #008000;font-weight:bold;">-
                              
                               000080;font-weight:bold;">\u9fa5
                               
                                a-zA-Z0-9_.]+((
                                
                                 \\
                                 
                                  s)+(([dD][eE][sS][cC])|([aA][sS][cC])))?(()*,()*[
                                  
                                   \\
                                   
                                    #008000;font-weight:bold;">(
                                    
                                     000080;font-weight:bold;">\\
                                     
                                      #008000;font-weight:bold;">),'
                                      
                                       000080;font-weight:bold;">\u4e00
                                       
                                        #008000;font-weight:bold;">-
                                        
                                         000080;font-weight:bold;">\u9fa5
                                         
                                          a-zA-Z0-9_.]+(()+(([dD][eE][sS][cC])|([aA][sS][cC])))?)*",
                                          
                                           "");
                                           
                                            returnsql1+sql2;
                                            

    }

    最后改成这样了,虽然好像麻烦了一点。。。

    2020-06-14 14:50:27
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载