当前位置: 首页 > wzjs >正文

创意型网站建设上海百度seo

创意型网站建设,上海百度seo,做响应式网站是不是都用rem,wordpress中文客户端针对 MyBatis-Plus 的 saveOrUpdate 方法无法将字段更新为 null 的问题,这是因为 MyBatis-Plus 默认会忽略 null 值字段。以下是几种解决方案: 方案 1:使用 update(entity, wrapper) 手动指定更新条件 原理:通过 UpdateWrapper …

针对 MyBatis-Plus 的 saveOrUpdate 方法无法将字段更新为 null 的问题,这是因为 MyBatis-Plus 默认会忽略 null 值字段。以下是几种解决方案:

方案 1:使用 update(entity, wrapper) 手动指定更新条件

原理:通过 UpdateWrapper 明确指定需要更新为 null 的字段。

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {public void updateWithNullValue() {User user = new User();user.setId(1L);user.setUsername(null); // 需要更新为 null 的字段// 手动构建 UpdateWrapper,强制更新 null 值字段UpdateWrapper<User> wrapper = new UpdateWrapper<>();wrapper.set("username", null) // 指定 username 字段更新为 null.eq("id", user.getId()); // 更新条件:ID = 1// 调用 update 方法,第一个参数可以为 null(因为条件已在 wrapper 中)boolean success = this.update(null, wrapper);if (success) {System.out.println("更新 null 值成功");}}
}

方案 2:配置全局字段策略(推荐)

原理:通过配置 FieldStrategy 让 MyBatis-Plus 不忽略 null 值。

方式 1:配置文件(application.yml)
mybatis-plus:global-config:db-config:update-strategy: IGNORED  # 更新策略:忽略判断,所有字段都更新(包括 null)
方式 2:Java 配置类
@Configuration
public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 其他配置...// 配置全局策略GlobalConfig globalConfig = new GlobalConfig();GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();dbConfig.setUpdateStrategy(FieldStrategy.IGNORED); // 更新时忽略字段非空判断globalConfig.setDbConfig(dbConfig);return interceptor;}
}

方案 3:使用 @TableField 注解(细粒度控制)

原理:在实体类字段上指定更新策略为 IGNORED

@Data
@TableName("t_user")
public class User {@TableIdprivate Long id;@TableField(updateStrategy = FieldStrategy.IGNORED) // 该字段更新时忽略 null 判断private String username;private String phone;@TableField(updateStrategy = FieldStrategy.IGNORED) // 该字段更新时忽略 null 判断private Integer age;
}

方案 4:自定义 SQL 方法

原理:在 Mapper 接口中自定义更新方法,使用 @Update 注解编写 SQL。

public interface UserMapper extends BaseMapper<User> {@Update("UPDATE t_user SET username = #{username}, age = #{age} WHERE id = #{id}")boolean updateWithNull(@Param("id") Long id, @Param("username") String username, @Param("age") Integer age);
}

Service 层调用

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {public void customUpdateWithNull() {boolean success = baseMapper.updateWithNull(1L, null, 25);if (success) {System.out.println("自定义 SQL 更新 null 值成功");}}
}

总结

方案优点缺点适用场景
方案 1灵活,按需更新代码冗余少量需要更新 null 的场景
方案 2全局生效,无需修改代码影响所有实体项目中大量需要更新 null
方案 3细粒度控制,不影响其他字段需修改实体类部分字段需要更新 null
方案 4完全自定义 SQL维护成本高复杂更新逻辑或性能敏感场景

推荐顺序:方案 3(细粒度控制)→ 方案 2(全局配置)→ 方案 1(临时需求)→ 方案 4(特殊场景)。

http://www.dtcms.com/wzjs/162757.html

相关文章:

  • wordpress 旅游主题搜索引擎推广与优化
  • 建设视频网站要求app推广软文范文
  • 网站后台管理系统安装广告模板
  • 手机做网站百度网址大全下载安装
  • 公安网站后台管理系统百度问答官网
  • 网上建设网站seo咨询师
  • 网站怎么正确的做内链接国外免费建站网站搭建
  • 网站开发人员职位晋升空间优化软件下载
  • 网站模板下载百度云链接怎么做长沙百度关键词排名
  • 2022年互联网创业项目淘宝seo软件
  • 珠海网站建设的公司哪家好国内哪个搜索引擎最好用
  • 做网站网页的工作怎么样整合营销传播案例分析
  • 免费建网站平台哪个好汽车行业网站建设
  • 网站建设通百度商业账号登录
  • 十堰微网站建设费用长尾关键词搜索
  • 浏览览器打开网址杭州seo网站哪家好
  • 长春网站建长春做网站百度推广怎么提高关键词排名
  • 网站建设前期策划磁力狗在线搜索
  • 网站需要实名认证拼多多商品关键词搜索排名
  • 花生壳动态域名做网站疫情放开死亡人数最新消息
  • 做网站是做完给钱还是百度如何优化
  • 网站建设案例精英如何搭建公司网站
  • 如何在百度建设企业网站网络营销师月薪
  • 企业网站也需要在公安做备案么宁波seo排名优化哪家好
  • 如何登陆公司网站后台网站构建的基本流程
  • 化妆品营销型网站排名优化软件
  • 微信客户联系方式王通seo
  • 网站大全全部免费免费seo网站优化工具
  • 自贡网站建设太原百度快照优化排名
  • 济南传承网络李聪桔子seo网