Spring Boot 示例的标识符...已从

jtw3ybtb  于 2023-01-20  发布在  Spring
关注(0)|答案(1)|浏览(127)

我发现许多关于这个标题的响应“.."的示例的标识符是从...更改的”,但这些都没有给予我一个解决方案。
我使用的PostgreSQL只有2列id_type和libelle。
以下是我的模型级别:

package com.stev.pillecons.pilleCons.models;   

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity(name = "type_pille")
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
public class LePille {
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    private int id_type;
    private String libelle;
    public  LePille(){}
    public String getLibelle() {
        return libelle;
    }
    public void setLibelle(String libelle) {
        this.libelle = libelle;
    }
    public int getId_type() {
        return id_type;
    }
    public void setId_type(int id_type) {
        this.id_type = id_type;
    }
}

我的服务级别:

@Override
public LePille updatePille(Integer id, LePille  Sourcepille) {
    Optional<LePille> existingSession = pilleRepo.findById(id);

    if (existingSession.isPresent())
    {
        LePille  Targetpile = existingSession.get();
        BeanUtils.copyProperties(Sourcepille, Targetpile);
        return pilleRepo.saveAndFlush(Targetpile);
    }
    else
    {
        throw new PilleException("pille not found");
    }
}

当我调试它的时候,用数据
{“身份证类型”:10,“诽谤”:“dsf”}
与 Postman x1c 0d1x
TargetPille的值为:{“id_type”:10,“libelle”:“dsf”}和源文件的值:{“身份类型”:0,“诽谤”:“流行”}
最后但并非最不重要的是控制器级别:

@RequestMapping(value = "{id}", method = RequestMethod.PUT)
    public ResponseEntity update(@PathVariable Integer id, @RequestBody LePille session) {
      LePille updPille =   pilleService.updatePille(id, session);
        return new ResponseEntity<LePille>(updPille, HttpStatus.OK);
    }

这很奇怪,因为只是更新不工作,创建,读取和删除工作正常。
先谢了

dxxyhpgq

dxxyhpgq1#

我只是这样修改代码:

BeanUtils.copyProperties(Sourcepille, Targetpile, "id_type");

只需添加id_type以忽略变量

相关问题