queryWrapper.eq(WmsInventoryGoodsAreaSeat::getStoreId, storeIdBefore);如果为空查询为null的值
时间: 2024-03-11 21:51:14 浏览: 22
如果你想查询为null的值,可以使用`isNull`方法:
```
queryWrapper.isNull(WmsInventoryGoodsAreaSeat::getStoreId)
```
这样就可以查询`WmsInventoryGoodsAreaSeat`表中`storeId`字段值为null的记录了。
相关问题
LambdaUpdateWrapper<StatTurnoverHour> updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.setSql("turnover = " + (updateWrapper.getSqlSegment().contains("turnover") ? "turnover + " : "") + dto.getMoney()); updateWrapper.setSql("order_num = order_num + " + dto.getOrderNum()); updateWrapper.eq(StatTurnoverHour::getStoreId, dto.getStoreId()); updateWrapper.eq(StatTurnoverHour::getHourTime, dto.getHourTime()); updateWrapper.eq(StatTurnoverHour::getPayTime, dto.getPayTime()); boolean b = this.saveOrUpdate(statTurnoverHour, updateWrapper);解决 BigDecimal 类型字段报错没有默认值的问题,如果turnover为空就取dto.getMoney(),不为空就执行updateWrapper.setSql("turnover = turnover + " + dto.getMoney());
可以尝试如下代码来解决BigDecimal类型字段报错没有默认值的问题:
```
LambdaUpdateWrapper<StatTurnoverHour> updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.set(StatTurnoverHour::getTurnover, dto.getMoney(), StringUtils.isNotBlank(dto.getMoney()));
updateWrapper.setSql("order_num = order_num + " + dto.getOrderNum());
updateWrapper.eq(StatTurnoverHour::getStoreId, dto.getStoreId());
updateWrapper.eq(StatTurnoverHour::getHourTime, dto.getHourTime());
updateWrapper.eq(StatTurnoverHour::getPayTime, dto.getPayTime());
boolean b = this.saveOrUpdate(statTurnoverHour, updateWrapper);
```
这里使用 `set` 方法来设置 `turnover` 字段的值,如果 `dto.getMoney()` 不为空,则设置为该值,否则不设置。同时,保留了 `order_num` 字段的更新方式。
LambdaUpdateWrapper<StatTurnoverHour> updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.set(StatTurnoverHour::getOrderNum, StatTurnoverHour::getOrderNum.plus(dto.getOrderNum())); updateWrapper.set(StatTurnoverHour::getTurnover, StatTurnoverHour::getTurnover.plus(dto.getMoney())); updateWrapper.eq(StatTurnoverHour::getStoreId, dto.getStoreId()); updateWrapper.eq(StatTurnoverHour::getHourTime, dto.getHourTime()); updateWrapper.eq(StatTurnoverHour::getPayTime, dto.getPayTime()); boolean b = this.saveOrUpdate(statTurnoverHour, updateWrapper);StatTurnoverHour::getOrderNum.plus(dto.getOrderNum())jdk1.8不支持
是的,JDK1.8不支持在Lambda表达式中使用方法引用来进行算术操作。您可以考虑使用Lambda表达式来实现相应的逻辑,例如:
```
updateWrapper.set(StatTurnoverHour::getOrderNum, x -> x.getOrderNum() + dto.getOrderNum());
updateWrapper.set(StatTurnoverHour::getTurnover, x -> x.getTurnover().add(dto.getMoney()));
```
这里使用Lambda表达式来定义一个函数,实现对应的算术操作。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)