概述
以此做法为例,如果需要多条件匹配,可以自行添加方法处理
// 继承原来的公共mapper
// java8 interface可以写方法的实现逻辑,直接在这里写好,
// 其他地方调用时直接继承自定义的 mapper
public interface CustomBaseMapper<T> extends BaseMapper<T> {
/**
* 目前仅支持主键/属性为 id的更新
* @param dirtyFields: 指定更新的属性
*/
default int updateById(@Param("et") T entity, List<String> dirtyFields) {
Class<?> tClass = entity.getClass();
UpdateWrapper<T> wrapper = new UpdateWrapper<>();
try {
Object id = ObjectUtils.getAttrVal(entity, "id"); // 获取对象的主键值
wrapper.eq("id", id);
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("对象主键未找到,请确认"); // 自定义异常
}
for (String dirtyField : dirtyFields) {
try {
Field classField = tClass.getDeclaredField(dirtyField);
classField.setAccessible(true);
// 对象属性,转成数据库字段
wrapper.set(StringUtils.toColumn(dirtyField), classField.get(entity));
} catch (Exception ignored) {
}
}
return update(null, wrapper);
}
}
最后
以上就是妩媚大白为你收集整理的mybatis-plus 修改指定字段(通用解决方案)的全部内容,希望文章能够帮你解决mybatis-plus 修改指定字段(通用解决方案)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复