我不能@putmapping Spring Boot

pn9klfpd  于 2023-03-02  发布在  Spring
关注(0)|答案(1)|浏览(134)

@Putmapping注解在我的代码上不正确。我想用putMap进行更新操作,但它进行了后Map并向数据库添加了一条新记录。

使用放置Map更新

llycmphe

llycmphe1#

在update方法的服务类中,您正在调用保存方法。

@Override
    public void update(UpdateBrandRequest updateBrandRequest) {
        // jparepository brand tanıdığı için hep brand nesnesi lazım.
        
        Brand brand = this.modelMapperService.forRequest().map(updateBrandRequest, Brand.class);
        this.brandRepository.save(brand);    // updaterequest içinde id olduğu için buradaki save, update işlemi yapar.
    }

但在此之前,对于putMap,您需要发送您试图更新的Id,并且必须使用setters方法为该特定记录设置新值。
下面我可以给你看我的代码的例子:

@Override
public Candy updateCandy(Candy candy, int candyId) throws CandyShopServiceException {
        // TODO Auto-generated method stub
        Candy candy1 = candyRepository.findById(candyId)
                .orElseThrow(() -> new CandyNotFoundException("Candy by this Id not found"));
        candy1.setCandyName(candy.getCandyName());
        candy1.setCandyStock(candy.getCandyStock());
        return candyRepository.save(candy1);
    }

在上面的代码中,我从 Postman 那里传递了Candy对象和perticular candy Id作为putMap,然后从这个Id中查找perticular candy,并使用setter方法通过替换现有的candy记录来设置新candy的值。
如果你对此有任何疑问,请随时发表评论。

相关问题