简体   繁体   English

如何仅添加一个数据?

[英]how can add only one data?

@PutMapping("/api/cricketer/{id}")
public ResponseEntity<Cricketer> updateCricketer(@PathVariable("id") Long id, @RequestBody Cricketer cricketer) {
    Cricketer cCricketer = cricketerService.findById(id);
    cCricketer.setCountry(cricketer.getCountry());
    cCricketer.setName(cricketer.getName());
    cCricketer.setHighestScore(cricketer.getHighestScore());
    cricketerRepository.save(cCricketer);
    return new ResponseEntity<Cricketer>(cricketer, HttpStatus.OK);
}

Hello everyone. 大家好。 When I try to update a data on updateCricketer method, it updates the data as I entered. 当我尝试更新updateCricketer方法上的数据时,它将按我输入的内容更新数据。 But other datas turn as null. 但是其他数据变为空。 Does anyone know how can I solve that problem? 有谁知道我该如何解决这个问题?

Do a null check before setting values. 在设置值之前进行空检查。

@PutMapping("/api/cricketer/{id}")
public ResponseEntity<?> updateCricketer(@PathVariable("id") Long id, @RequestBody Cricketer cricketer) {
    Cricketer cCricketer = cricketerService.findById(id);
    if(Objects.nonNull(cCricketer)) {
        cCricketer.setCountry(Objects.isNull(cricketer.getCountry()) ? cCricketer.getCountry() : cricketer.getCountry());
        cCricketer.setName(Objects.isNull(cricketer.getName()) ? cCricketer.getName() : cricketer.getName());
        cCricketer.setHighestScore(Objects.isNull(cricketer.getHighestScore()) ? cCricketer.getHighestScore() : cricketer.getHighestScore());
        // Do same to the rest of the fields

        cricketerRepository.save(cCricketer);

        return new ResponseEntity<>(cricketer, HttpStatus.OK);
    } else {
        return new ResponseEntity<>("No cricketer Found!", HttpStatus.OK);
    }
}

Another solution for this is to use data transfer objects and an object mapper which will take care of the null check depending on the strategy that you decide. 对此的另一种解决方案是使用数据传输对象和对象映射器,这些映射器将根据您决定的策略执行空检查。

http://mapstruct.org/documentation/stable/reference/html/#mapping-result-for-null-arguments http://mapstruct.org/documentation/stable/reference/html/#mapping-result-for-null-arguments

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我们如何在 Firebase 实时数据库中为每个用户设置规则读取另一个用户添加的数据但用户只能删除自己的数据? - How we set the rule in Firebase Realtime Database for every user Read data which is add by another one but user can delete only own data? 如何在OptaPlanner中添加约束一辆车只能在一个方向上go? - How to add constraint one car can only go in one direction in OptaPlanner? 如何仅向一行添加空格 - How to add a space to only one line 如何在网格中的一列复选框中添加一个复选框,在该网格中所有行只能选择一个? - How to add a column of checkbox in a grid where only one can be selected across all rows? 如何在屏幕上添加两个组件而又不重叠却只显示一个组件? - How can i add two components to my screen without them overlapping and only showing one? 如何从我的片段之一添加数据,并将其传递给我的适配器,并将其设置为我的数组列表? - How can I add data from one of my fragments, and pass it to my adapter, and set it to my array list? 如何获取仅添加到一个数组的线程带有同步的整数列表 - How to get threads to add to only one arrayList of integers with synchronized 如何仅为一个特殊路径WebSecurityConfigurerAdapter添加过滤器 - How to add a filter only for one special path WebSecurityConfigurerAdapter Scala-MVN软件包-如何仅添加一个文件更改 - Scala - MVN Package - how to add only one file change JFrame仅添加一个类 - JFrame add only one class
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM