
template.mysql.update.updateSomeByPkIgnoreNullEmpty.ftl Maven / Gradle / Ivy
<#-- 修改若干条数据,忽略为空的属性 -->
UPDATE ${tableName!}
<#-- 如果入参的 key 名称 或者 要修改的对象实例为空,则不修改任何一条数据库数据 -->
<#-- 设置所有的值为原值 -->
<#list columns as column>
`${column.column!}`=`${column.column!}`<#if column_has_next>,#if>
#list>
<#-- 设置修改条数为 0 -->
LIMIT 0
<#-- 入参不为空的情况 -->
<#-- 遍历所有主键,获取指定的主键,使之能生成 mapper.xml 中的 case `key` 结构语句,如果入参key的值是所操作数据库表的主键字段名的话 -->
<#list pkColumns as pkColumn>
<#list unPkColumns as unPkColumn>
`${unPkColumn.column!}` =
when
${"#\{bean."}${pkColumn.property}${"}"}
then
<#-- 入参属性值不为空 -->
${"#\{bean."}${unPkColumn.property}${"}"}
<#-- 入参属性值为空 -->
`${unPkColumn.column!}`
<#if unPkColumn_has_next>,#if>
#list>
#list>
<#-- 入参key的值不是所操作的数据库表的主键字段名 -->
<#list pkColumns as pkColumn>
`${pkColumn.column!}`=`${pkColumn.column!}`
<#break>
#list>
<#-- 主键值作为修改条件 -->
<#list pkColumns as pkColumn>
`${pkColumn.column!}` IN
(
${"#\{bean."}${pkColumn.property}${"}"}
)
#list>
<#-- 如果传入的“key”值不是真实存在的主键字段名,则不修改数据 -->
<#list pkColumns as pkColumn>
#list>
LIMIT 0
© 2015 - 2025 Weber Informatics LLC | Privacy Policy