问题描述:本地调试会拼接,服务器不会拼接 set 字段名=””
解决方法:操作实体字段加上策略:strategy = FieldStrategy.IGNORED
服务器异常日志脚本:update 表 where (bus_id = ?)
正确效果为:update 表 set 字段=”” where (bus_id = ?)
示例代码:
Wrapper<ModuleUserPo> moduleUserPoWrapper = new EntityWrapper<>();
moduleUserPoWrapper .eq("bus_id", busId);
ModuleUserPo moduleUserPo = new ModuleUserPo ();
moduleUserPo.setYjMc(cfgParam.getYj());
moduleUserPo.setJsMc(cfgParam.getFz());
moduleUserMapper.update(moduleUserPo, moduleUserPoWrapper );
/**
* <p>
* 用户实体
* </p>
*
* @author
* @since 2019-12-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName

当使用Mybatis-plus进行数据修改时,如果传入参数为空,服务器上不会自动拼接'SET'字段。解决此问题的方法是在实体字段上设置策略为FieldStrategy.IGNORED。异常日志显示缺少'SET'部分,正确的SQL应包含'SET'关键字来更新字段。参考代码和字段策略源码可供查阅。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



