minidao代码如下: 
@Arguments({"id","upleveno1"}) 
    @Sql("UPDATE test SET areano =" 
            + "(SELECT  " 
                + "CASE WHEN areano IS NULL THEN  " 
                    + "CASE  WHEN upleveno=1 THEN '11' " 
                           + "WHEN LENGTH(upleveno)=2 THEN CONCAT(upleveno,'01') " 
                           + "WHEN LENGTH(upleveno)=4 THEN CONCAT(upleveno,'01') " 
                           + "WHEN LENGTH(upleveno)=6 THEN CONCAT(upleveno,'001') " 
                           + "WHEN LENGTH(upleveno)=9 THEN CONCAT(upleveno,'001') " 
                    + "ELSE 'test' END " 
                + "ELSE  areano END AS areano  " 
            + "FROM (SELECT MAX(areano)+1 areano, :upleveno1 upleveno FROM test WHERE upleveno=:upleveno) AS tableq )" 
    + " WHERE id=:id") 
    Integer updatetestNum(int id,String upleveno1); 
 
----------------------分割线--------------------------------- 
运行结果: 
  
 
求大神帮忙找一下原因: 
----------------------分割线------本人做了尝试------------------------------------------------------ 
minidao 如下: 
@Arguments({"upleveno1"}) 
    @Sql("SELECT MAX(areano)+1 areano FROM test WHERE upleveno=:upleveno") 
    Integer updateAreaNum1(String upleveno1); 
 
调用如下: 
logger.info("aaaa "+test.getId()+"   uplevelno:"+test.getUpleveno()); 
logger.info("ssssss  :"+updateAreaNum1(test.getUpleveno())); 
 
运行结果如下: 
 aaaa 12207   uplevelno:1 
 ssssss  :null 
 
求大神指点。。。在线等。。。。 
 
 
 
 
 |