mybatis-plus map传参 其中有个ley的值为空 结果插入语句SQL报错
时间: 2023-11-27 13:50:30 浏览: 65
如果你的Mybatis-Plus插入语句中的某个列的值为null,但是该列被定义为非空列,则会出现SQL插入错误。解决方法有两种:
1. 确保传入的map中每个非空列都有对应的值,如果没有值,则设置为一个空字符串或者一个默认值。
2. 使用Mybatis-Plus的Wrapper对象进行插入操作,这样可以将null值转换为默认值,例如:
```java
User user = new User();
user.setName("test");
user.setAge(18);
user.setEmail("test@mp.com");
user.setManagerId(1088248166370832385L);
user.setCreateTime(LocalDateTime.now());
user.setRemark(null);
// 使用Wrapper对象进行插入
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "test");
wrapper.eq(User::getAge, 18);
wrapper.eq(User::getEmail, "test@mp.com");
wrapper.eq(User::getManagerId, 1088248166370832385L);
wrapper.eq(User::getCreateTime, LocalDateTime.now());
wrapper.eq(User::getRemark, null);
userMapper.insert(user, wrapper);
```
这样,如果某个列的值为null,Mybatis-Plus会将其转换为默认值,避免插入SQL错误。
阅读全文