当前使用版本(必填,否则不予处理)
3.3.3
CacheServiceImpl类
testCustomSaveOrUpdateBatch方法
//name为空写入,不为空按条件更新
boolean result = saveOrUpdateBatch(Arrays.asList(model1, model2), entity -> entity.getName() == null, (entity) -> new QueryWrapper
建议:上面的方法加个 keyProperty 去查询 (根据传入的值去做查询,没有就写入,有的话就按条件更新) 是不是更好?
比如:
boolean result = saveOrUpdateBatch(
Arrays.asList(model1, model2), entity -> entity.getName() == null, String keyProperty,
(entity) -> new QueryWrapper
Comment From: nieqiurong
你考虑的太少了,测试用例我只是简单的写了个,增加当前方法是为了能让你们能更大程度的灵活控制save和update的判断,虽然我也没太看懂你加的这个keyProperty是用来干啥的,可能是想替换entity -> entity.getName() == null这一句把,但如果是复合索引,非唯一索引呢,又或者需要调用其他服务接口来判断这条记录是不是存在,至于你想的那些,你可以基于这个去自定义封装,框架不限制你,另外加个keyProperty也需要硬编码一些属性名。
//name为空写入,不为空按条件更新
boolean result = saveOrUpdateBatch(Arrays.asList(model1, model2), entity -> {
boolean exists = entity.getName() == null
|| getOne(new QueryWrapper<CacheModel>().lambda().eq(CacheModel::getName, entity.getName())) == null;
//save do some thing
entity.setName("旺旺");
return exists;
}, (entity) -> {
//update do some thing
return new QueryWrapper<CacheModel>().lambda().eq(CacheModel::getName, entity.getName());
});
return model1.getId() != null && model2.getId() == null && result;
Comment From: biaogehao
十分感谢老哥回复。
这个方法3.3.3里发布哦。 大概啥时候发布哈
Comment From: nieqiurong
十分感谢老哥回复。
这个方法3.3.3里发布哦。 大概啥时候发布哈
暂时还不清楚,可能还要改改。
Comment From: biaogehao
好滴 感谢
Comment From: wubumihuo
好滴 感谢
你好,请问这个功能什么时候上线?
Comment From: wubumihuo
十分感谢老哥回复。 这个方法3.3.3里发布哦。 大概啥时候发布哈
暂时还不清楚,可能还要改改。
你好,请问这个功能什么时候上线