mybatis plus 实现insertOrUpdate记录违反唯一约束时更新否则插入新纪录
MyBatis Plus 提供了 insertOrUpdate 方法来实现插入或更新操作,可以在实体类中给需要进行唯一约束的字段添加 @TableField 注解,并设置 updateStrategy 为 FieldStrategy.IGNORED,表示在更新时忽略该字段的值。
示例代码如下:
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String email;
// getter/setter 略
}
在进行插入或更新操作时,可以使用 saveOrUpdate 方法,如果实体类中存在主键,则会根据主键值判断是插入新纪录还是更新已有记录;如果不存在主键,则会根据唯一约束进行判断,如果插入的记录违反唯一约束,则会更新已有记录,否则插入新纪录。
示例代码如下:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public void saveOrUpdateUser(User user) {
userMapper.saveOrUpdate(user);
}
}
``
原文地址: http://www.cveoy.top/t/topic/hcH7 著作权归作者所有。请勿转载和采集!