我发现许多关于这个标题的响应“.."的示例的标识符是从...更改的”,但这些都没有给予我一个解决方案。
我使用的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);
}
这很奇怪,因为只是更新不工作,创建,读取和删除工作正常。
先谢了
1条答案
按热度按时间dxxyhpgq1#
我只是这样修改代码:
只需添加id_type以忽略变量