insert into ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, HAS_START_FORM_KEY_, SUSPENSION_STATE_)
values (#{id, jdbcType=VARCHAR},
1,
#{category, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR},
#{key, jdbcType=VARCHAR},
#{version, jdbcType=INTEGER},
#{deploymentId, jdbcType=VARCHAR},
#{resourceName, jdbcType=VARCHAR},
#{diagramResourceName, jdbcType=VARCHAR},
#{hasStartFormKey, jdbcType=BOOLEAN},
#{suspensionState, jdbcType=INTEGER})
update ACT_RE_PROCDEF set
REV_ = #{revisionNext, jdbcType=INTEGER},
SUSPENSION_STATE_ = #{suspensionState, jdbcType=INTEGER}
where ID_ = #{id, jdbcType=VARCHAR}
and REV_ = #{revision, jdbcType=INTEGER}
delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = #{deploymenId}
from ACT_RE_PROCDEF PD
PD.ID_ = #{id}
PD.CATEGORY_ = #{category}
PD.NAME_ = #{name}
PD.NAME_ like #{nameLike}
and PD.KEY_ = #{key}
and PD.KEY_ like #{keyLike}
and PD.RESOURCE_NAME_ = #{resourceName}
and PD.RESOURCE_NAME_ like #{resourceNameLike}
and PD.VERSION_ = #{version}
and PD.DEPLOYMENT_ID_ = #{deploymentId}
and PD.VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = PD.KEY_)
and (PD.SUSPENSION_STATE_ = #{suspensionState.stateCode})