update怎么写会更好?
来源:7-1 关于事务:红包并发中的事务
kevin00012
2019-09-22
难道这样?
//Controller的update方法
@PutMapping("/luckmoneys/{id}")
public Luckmoney update(@PathVariable("id") Integer id,
@RequestParam(value="money",required=false,defaultValue = "0")BigDecimal money,
@RequestParam(value="producer",required = false,defaultValue = "")String producer,
@RequestParam(value="consumer",required = false,defaultValue = "")String consumer){
Luckmoney luckmoney=new Luckmoney();
luckmoney.setId(id);
luckmoney.setMoney(money);
luckmoney.setProducer(producer);
luckmoney.setConsumer(consumer);
return service.update(luckmoney);
}
//Service中的update方法
public Luckmoney update(Luckmoney luckmoney){
Optional<Luckmoney> optional=repository.findById(luckmoney.getId());
if(optional.isPresent()){
Luckmoney _luckmoney=optional.get();
if(!StringUtils.isEmpty(luckmoney.getProducer())){
_luckmoney.setProducer(luckmoney.getProducer());
}
if(!StringUtils.isEmpty(luckmoney.getConsumer())){
_luckmoney.setConsumer(luckmoney.getConsumer());
}
if(!luckmoney.getMoney().equals(BigDecimal.ZERO)){
_luckmoney.setMoney(luckmoney.getMoney());
}
return repository.save(_luckmoney);//这里update的方法也是save
}else {
return null;
}
}
3回答
-
慕雪8281871
2019-11-24
@PutMapping("/update/{id}")
public LuckyMoney update(@PathVariable("id") Integer id,@RequestParam("consumer") String consumer){
LuckyMoney byId = this.findById(id);
byId.setConsumer(consumer);
return luckymoneyRepository.save(byId);
}之前写过根据id查询的方法,所以直接this调用就好啦。
042019-12-02 -
慕UI1337305
2019-11-06
@PutMapping("/luckymoneys")
public LuckyMoney updateLuckymoney(@ModelAttribute LuckyMoney luckyMoney){
LuckyMoney luckyMoney1 = luckyMoneyRepository.findById(luckyMoney.getId()).orElse(null);
if (luckyMoney1!=null){
// SpringBeanUtils.copyPropertiesIgnoreNull是自己实现的工具类,可以将非空的属性值传给数据库的对象
// 直接使用spring的BeanUtils.copyProperties方法会将空值也穿过去所以不能直接用
SpringBeanUtils.copyPropertiesIgnoreNull(luckyMoney,luckyMoney1);
return luckyMoneyRepository.save(luckyMoney1);
}
return null;
}012019-11-25 -
chengfei001
2019-10-09
只能这么写了,除非你在进一步的增加填充的功能
00
相似问题