java - 内部服务器错误 - 给定的 id 不能为空
问题描述
我现在有这个问题,我想寻求帮助,我无法访问 的值dto.getIdCliente()
,但这就像 JSON 一样传递给ServicoPrestadoDTO dto
. 代码如下...
ServicoPrestadoController.java:
@RestController
@RequestMapping("/api/servicos-prestados")
@RequiredArgsConstructor
public class ServicoPrestadoController {
private final ClienteRepository clienteRepository;
private final ServicoPrestadoRepository servicoPrestadoRepository;
private final BigDecimalConverter bigDecimalConverter;
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public ServicoPrestado salvar(@RequestBody ServicoPrestadoDTO dto){
LocalDate data = LocalDate.parse(dto.getData(), DateTimeFormatter.ofPattern("dd/MM/yyyy"));
Integer idCliente = dto.getIdCLiente();
Cliente cliente =
clienteRepository.findById(idCliente)
.orElseThrow(() ->
new ResponseStatusException(
HttpStatus.NOT_FOUND, "Cliente não encontrado!"));
ServicoPrestado servicoPrestado = new ServicoPrestado();
servicoPrestado.setDescricao(dto.getDescricao());
servicoPrestado.setData(data);
servicoPrestado.setCliente(cliente);
servicoPrestado.setValor(bigDecimalConverter.converter(dto.getPreco()));
return servicoPrestado;
}
@GetMapping
public List<ServicoPrestado> pesquisar(
@RequestParam(value = "nome", required = false) String nome,
@RequestParam(value = "mes", required = false) Integer mes
){
return servicoPrestadoRepository.findByNomeClienteAndMes("%" + nome + "%", mes);
}
}
ServicoPrestadoDTO.java:
@Data
@NoArgsConstructor
public class ServicoPrestadoDTO {
private String descricao;
private String preco;
private String data;
private Integer idCLiente;
}
ServicoPrestado.java:
@Entity
@Data
public class ServicoPrestado {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false, length = 150)
private String descricao;
@ManyToOne
@JoinColumn(name = "id_cliente")
private Cliente cliente;
@Column
private BigDecimal valor;
@Column
@JsonFormat(pattern = "dd/MM/yyyy")
private LocalDate data;
}
我不明白为什么我的 JSON没有收到servico
发送。servico-prestado-form.ts
解决方案
在使用 lombok 时,将@AllArgsConstructor
注释添加到您的ServicoPrestadoDTO
类中。
这样,Jackson 反序列化器将能够将您的 JSON 反序列化为一个对象。
推荐阅读
- bash - 将 Radare2 终端输出保存到 Mac 的文本文件中
- mysql - Laravel 查询构建器从联接返回一行而不是多行
- javascript - 注销然后登录后数据不显示-reactjs
- amazon-web-services - 用户注册后如何在 aws cognito 中自动验证电子邮件。稍后状态后在 Cognito 中验证电子邮件
- git - git The requested URL returned error: 403 for push a new created branch on a public repository
- python - 将列表的字符串表示形式转换为列表而不使用任何包
- xpath - Octoparse Xpath 或 iframe 提取问题
- javascript - 在渲染反应路由之前等待异步函数的结果
- c - 变量值未分配给C中的另一个变量
- javascript - 花括号会改变这个函数的读取吗