<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="${package.Mapper}.${table.mapperName}">
|
|
#if(${enableCache})
|
<!-- 开启二级缓存 -->
|
<cache type="${cacheClassName}"/>
|
|
#end
|
#if(${baseResultMap})
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="${package.Other}.vo.${voInfo.voName}">
|
#foreach($field in ${table.fields})
|
#if(${field.keyFlag})##生成主键排在第一位
|
<id column="${field.columnName}" property="${field.propertyName}" />
|
#end
|
#end
|
#foreach($field in ${voInfo.fields})
|
#if(${field.propertyName} != "deleted" and ${field.propertyName} != "id" and ${field.propertyName} != "${field.refTableProperty}" and ${field.propertyName} != "${field.refTableProperty}List")##因为是直接映射到vo,deleted不需要
|
<result column="${field.columnName}" property="${field.propertyName}" />
|
#end
|
#end
|
#if(${hasRef})
|
#foreach($field in ${refColumnList})
|
#if(${field.refType} == "OTM")
|
<collection column="${field.columnName}" property="${field.refTableProperty}List" select="selectRef${field.refTableVoName}" ofType="${package.Other}.vo.${field.refTableVoName}">
|
#foreach($refField in ${field.returnColumnList})
|
#if(${refField.column} == "id")
|
<id column="${refField.column}" property="${refField.property}" />
|
#else
|
<result column="${refField.column}" property="${refField.property}" />
|
#end
|
#end
|
</collection>
|
#end
|
#end
|
#end
|
</resultMap>
|
|
#end
|
|
#if(${hasRef})
|
#foreach($field in ${refColumnList})
|
#if(${field.refType} == "OTO")
|
<resultMap id="${field.refTableVoName}Map" type="${package.Other}.vo.${field.refTableVoName}">
|
#foreach($returnField in ${field.returnColumnList})
|
<result column="${returnField.asColumn}" property="${returnField.property}" />
|
#end
|
</resultMap>
|
#end
|
#end
|
#end
|
|
#if(${hasRef})
|
#foreach($field in ${refColumnList})
|
<select id="selectRef${field.refTableVoName}">
|
SELECT
|
#foreach($refField in ${field.returnColumnList})
|
${refField.column},
|
#end
|
FROM
|
${field.refTableName}
|
WHERE
|
${field.refColumn} = #{id}
|
</select>
|
#end
|
#end
|
|
|
|
#if(${baseColumnList})
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
#foreach($field in ${table.commonFields})
|
${field.columnName},
|
#end
|
${table.fieldNames}
|
</sql>
|
#end
|
|
<select id="getById" resultMap="BaseResultMap">
|
SELECT
|
#foreach($field in ${voInfo.fields})
|
${voInfo.tableSimpleName}.${field.columnName},
|
#end
|
#foreach($field in ${refColumnList})
|
#if(${field.refType} == "OTO")
|
#foreach($returnField in ${field.returnColumnList})
|
${field.refTableSimpleName}.${returnField.column} as ${returnField.asColumn},
|
#end
|
#end
|
#end
|
${voInfo.tableSimpleName}.id
|
FROM
|
${table.name} ${voInfo.tableSimpleName}
|
#foreach($field in ${refColumnList})
|
#if(${field.refType} == "OTO")
|
INNER JOIN ${field.refTableName} ${field.refTableSimpleName} ON ${voInfo.tableSimpleName}.${field.columnName} = ${field.refTableSimpleName}.${field.refColumn} AND ${field.refTableSimpleName}.deleted = 0
|
#end
|
#end
|
WHERE
|
${voInfo.tableSimpleName}.id = #{id} AND ${voInfo.tableSimpleName}.deleted = 0
|
</select>
|
|
|
<select id="getPage" resultMap="BaseResultMap">
|
SELECT
|
#foreach($field in ${voInfo.fields})
|
${voInfo.tableSimpleName}.${field.columnName},
|
#end
|
#foreach($field in ${refColumnList})
|
#if(${field.refType} == "OTO")
|
#foreach($returnField in ${field.returnColumnList})
|
${field.refTableSimpleName}.${returnField.column} as ${returnField.asColumn},
|
#end
|
#end
|
#end
|
${voInfo.tableSimpleName}.id
|
FROM
|
${table.name} ${voInfo.tableSimpleName}
|
#foreach($field in ${refColumnList})
|
#if(${field.refType} == "OTO")
|
INNER JOIN ${field.refTableName} ${field.refTableSimpleName} ON ${voInfo.tableSimpleName}.${field.columnName} = ${field.refTableSimpleName}.${field.refColumn} AND ${field.refTableSimpleName}.deleted = 0
|
#end
|
#end
|
WHERE
|
${voInfo.tableSimpleName}.deleted = 0
|
#foreach($field in ${queryInfo.fields})
|
<if test="query.${field.propertyName} != null and query.${field.propertyName} != ''">
|
AND ${voInfo.tableSimpleName}.${field.columnName} = #{query.${field.propertyName}}
|
</if>
|
#end
|
</select>
|
|
</mapper>
|