请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

update怎么写会更好?

难道这样?

//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

3回答

慕雪8281871 2019-11-24 15:35:36

@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调用就好啦。

0 回复 有任何疑惑可以回复我~
  • 提问者 kevin00012 #1
    那servive层不要update方法么?只通过service的findbyid()和save()方法就可以实现controller的update,所以service不需要update?
    回复 有任何疑惑可以回复我~ 2019-11-25 22:55:58
  • 提问者 kevin00012 #2
    所以我在service层写update方法直接调用repository的findbyid()和save()方法是没有必要的对吗?直接在controller写一个update就可以,service中可以没有update()对吗?
    回复 有任何疑惑可以回复我~ 2019-11-25 23:03:21
  • 慕雪8281871 回复 提问者 kevin00012 #3
    这个其实要看你项目规格的具体要求
    回复 有任何疑惑可以回复我~ 2019-12-02 08:48:35
慕UI1337305 2019-11-06 18:18:21

@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;
   }

0 回复 有任何疑惑可以回复我~
  • 提问者 kevin00012 #1
    业务都在controller处理了,那service层里面做什么?是不要service了吗?
    回复 有任何疑惑可以回复我~ 2019-11-25 23:06:10
chengfei001 2019-10-09 15:33:59

只能这么写了,除非你在进一步的增加填充的功能

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信