瀏覽代碼

新增自动生成排序字段

周浩 9 年之前
父節點
當前提交
0532152851

+ 23 - 1
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/basic/BasicMapper.xml

@@ -54,11 +54,13 @@
     </sql>
     </sql>
     <!--生成查询字段-->
     <!--生成查询字段-->
     <sql id="buildSelectField">
     <sql id="buildSelectField">
+        <bind name="fieldHasLen" value="false"/>
         <choose>
         <choose>
             <!--指定查询的字段-->
             <!--指定查询的字段-->
             <when test="includes!=null and includes.size()>0">
             <when test="includes!=null and includes.size()>0">
                 <foreach item="item" index="index" collection="includes" open="" separator="," close="">
                 <foreach item="item" index="index" collection="includes" open="" separator="," close="">
                     <if test="item in $fields">
                     <if test="item in $fields">
+                        <bind name="fieldHasLen" value="true"/>
                         ${$tableName}.${item} as `${item}`
                         ${$tableName}.${item} as `${item}`
                     </if>
                     </if>
                 </foreach>
                 </foreach>
@@ -67,12 +69,14 @@
             <when test="(includes==null or includes.size()==0) and excludes!=null and excludes.size()>0">
             <when test="(includes==null or includes.size()==0) and excludes!=null and excludes.size()>0">
                 <foreach item="item" index="index" collection="$fields" open=" " separator="," close="">
                 <foreach item="item" index="index" collection="$fields" open=" " separator="," close="">
                     <if test="!(item in excludes)">
                     <if test="!(item in excludes)">
+                        <bind name="fieldHasLen" value="true"/>
                         ${$tableName}.${item} as `${item}`
                         ${$tableName}.${item} as `${item}`
                     </if>
                     </if>
                 </foreach>
                 </foreach>
             </when>
             </when>
-            <otherwise>*</otherwise>
+            <otherwise> <bind name="fieldHasLen" value="true"/>*</otherwise>
         </choose>
         </choose>
+        <if test="!fieldHasLen">*</if>
     </sql>
     </sql>
 
 
     <!--生成修改字段-->
     <!--生成修改字段-->
@@ -151,6 +155,23 @@
         </choose>
         </choose>
     </sql>
     </sql>
 
 
+    <!--生成排序字段-->
+    <sql id="buildSortField">
+        <bind name="fieldHasLen" value="false"/>
+        <choose>
+            <!--指定排序的字段-->
+            <when test="sortField!=null and sortField.size()>0">
+                <foreach item="item" index="index" collection="sortField" open="" separator="," close="">
+                    <if test="item in $fields">
+                        <if test="!fieldHasLen"> order by </if>${item}
+                        <bind name="fieldHasLen" value="true"/>
+                    </if>
+                </foreach>
+                <if test="fieldHasLen"> ${sortOrder}</if>
+            </when>
+        </choose>
+    </sql>
+
     <!--生成查询sql-->
     <!--生成查询sql-->
     <sql id="buildSelectSql">
     <sql id="buildSelectSql">
         select
         select
@@ -159,6 +180,7 @@
         <where>
         <where>
             <include refid="BasicMapper.buildWhere"/>
             <include refid="BasicMapper.buildWhere"/>
         </where>
         </where>
+        <include refid="BasicMapper.buildSortField"/>
     </sql>
     </sql>
 
 
     <!--生成InsertSql-->
     <!--生成InsertSql-->

+ 23 - 1
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/basic/BasicMapper.xml

@@ -80,11 +80,13 @@
     </sql>
     </sql>
     <!--生成查询字段-->
     <!--生成查询字段-->
     <sql id="buildSelectField">
     <sql id="buildSelectField">
+        <bind name="fieldHasLen" value="false"/>
         <choose>
         <choose>
             <!--指定查询的字段-->
             <!--指定查询的字段-->
             <when test="includes!=null and includes.size()>0">
             <when test="includes!=null and includes.size()>0">
                 <foreach item="item" index="index" collection="includes" open="" separator="," close="">
                 <foreach item="item" index="index" collection="includes" open="" separator="," close="">
                     <if test="item in $fields">
                     <if test="item in $fields">
+                        <bind name="fieldHasLen" value="true"/>
                         ${$tableName}.${item} as "${item}"
                         ${$tableName}.${item} as "${item}"
                     </if>
                     </if>
                 </foreach>
                 </foreach>
@@ -93,12 +95,14 @@
             <when test="(includes==null or includes.size()==0) and excludes!=null and excludes.size()>0">
             <when test="(includes==null or includes.size()==0) and excludes!=null and excludes.size()>0">
                 <foreach item="item" index="index" collection="$fields" open=" " separator="," close="">
                 <foreach item="item" index="index" collection="$fields" open=" " separator="," close="">
                     <if test="!(item in excludes)">
                     <if test="!(item in excludes)">
+                        <bind name="fieldHasLen" value="true"/>
                         ${$tableName}.${item} as "${item}"
                         ${$tableName}.${item} as "${item}"
                     </if>
                     </if>
                 </foreach>
                 </foreach>
             </when>
             </when>
-            <otherwise>*</otherwise>
+            <otherwise><bind name="fieldHasLen" value="true"/>*</otherwise>
         </choose>
         </choose>
+        <if test="!fieldHasLen">*</if>
     </sql>
     </sql>
 
 
     <!--生成修改字段-->
     <!--生成修改字段-->
@@ -177,6 +181,23 @@
         </choose>
         </choose>
     </sql>
     </sql>
 
 
+    <!--生成排序字段-->
+    <sql id="buildSortField">
+        <bind name="fieldHasLen" value="false"/>
+        <choose>
+            <!--指定排序的字段-->
+            <when test="sortField!=null and sortField.size()>0">
+                <foreach item="item" index="index" collection="sortField" open="" separator="," close="">
+                    <if test="item in $fields">
+                        <if test="!fieldHasLen"> order by </if>${item}
+                        <bind name="fieldHasLen" value="true"/>
+                    </if>
+                </foreach>
+                <if test="fieldHasLen"> ${sortOrder}</if>
+            </when>
+        </choose>
+    </sql>
+
     <!--生成查询sql-->
     <!--生成查询sql-->
     <sql id="buildSelectSql">
     <sql id="buildSelectSql">
         select
         select
@@ -185,6 +206,7 @@
         <where>
         <where>
             <include refid="BasicMapper.buildWhere"/>
             <include refid="BasicMapper.buildWhere"/>
         </where>
         </where>
+        <include refid="BasicMapper.buildSortField"/>
     </sql>
     </sql>
 
 
     <!--生成InsertSql-->
     <!--生成InsertSql-->