如何仅更新已更改的属性 - Spring MVC mongoDB

Posted

技术标签:

【中文标题】如何仅更新已更改的属性 - Spring MVC mongoDB【英文标题】:How to update only attributes that have changed - Spring MVC mongoDB 【发布时间】:2020-09-05 22:42:43 【问题描述】:

我正在使用 Spring Data MongoDB 和 Spring Data Rest 创建一个 REST API,它允许对我的 MongoDB 数据库进行 GET、POST、PUT 和 DELETE 操作,除了更新操作 (PUT) 之外,它都工作正常。仅当我在请求正文中发送完整对象时才有效,否则未在请求中发送的变量为空。有人可以指导我解决这个问题。

@PutMapping("/update/id")
    public void update(@Valid @RequestBody Facture facture, @PathVariable("id") String id)
        Optional<Facture> factureData = factureRepository.findById(id);

            facture.setId_facture(id);
            this.factureRepository.save(facture);

【问题讨论】:

【参考方案1】:

你可以试试像javer这样的对象比较库

【讨论】:

你的意思是我会比较 Diff diff = javers.compare(Olduser, user); @Kindth 是的,那么您将获得旧值和新值的差异图

以上是关于如何仅更新已更改的属性 - Spring MVC mongoDB的主要内容,如果未能解决你的问题,请参考以下文章

审计属性更改 - Spring MVC+ JPA

Laravel 5.3更新记录。仅更新已更改的记录并保留未更改的记录

[DataGridCheckBoxColumn在属性更改时不会在MVVM中更新

仅查看Model OnPropertyChanged上的更新,但不查看ViewModel OnPropertyChanged中的更新

java spring mvc 怎么在程序内更改url的参数名

Django:仅更新UpdateView中已更改的字段