нет уникального индекса
<insert id="saveOrUpdate2" >
<select count(*) as count from user where id = #{
id} for update</select>
<if test="count > 0">
update user set age = #{
age}, name = #{
name} where id = #{
id}
</if>
<if test="count == 0">
insert into user (age, name) values (#{
age}, #{
name})
</if>
</insert>
имеет уникальный индекс
Уникальный индекс name
<insert id="insertOrUpdateUser" parameterType="User">
INSERT INTO user (name, age, email)
VALUES (#{
name}, #{
age}, #{
email})
ON DUPLICATE KEY UPDATE
age = VALUES(age),
email = VALUES(email);
</insert>