O erro acontece quando envio a oferta e está na minha classe OfertaRest, mais precisamente nesta linha:
Optional<Pedido> pedidoBuscado = repository.findById(novaOfertaRequest.getPedidoId());
Minha classe OfertaRest:
public class OfertaRest {
@Autowired
private PedidoRepository repository;
@PostMapping
public Oferta criaOferta(NovaOfertaRequest novaOfertaRequest) {
Optional<Pedido> pedidoBuscado = repository.findById(novaOfertaRequest.getPedidoId());
if (!pedidoBuscado.isPresent()) {
return null;
}
Pedido pedido = pedidoBuscado.get();
Oferta oferta = novaOfertaRequest.toOferta();
oferta.setPedido(pedido);
pedido.getOfertas().add(oferta);
repository.save(pedido);
return oferta;
}
}
Minha classe RequisicaoNovaOferta:
package br.com.mvc.gumudi.dto;
import br.com.mvc.gumudi.model.Oferta;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class NovaOfertaRequest {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
private Long pedidoId;
private String valor;
private String dataDaEntrega;
private String comentario;
public Long getPedidoId() {
return this.pedidoId;
}
public void setPedidoId(Long pedidoId) {
this.pedidoId = pedidoId;
}
public String getValor() {
return valor;
}
public void setValor(String valor) {
this.valor = valor;
}
public String getDataDaEntrega() {
return dataDaEntrega;
}
public void setDataDaEntrega(String dataDaEntrega) {
this.dataDaEntrega = dataDaEntrega;
}
public String getComentario() {
return comentario;
}
public void setComentario(String comentario) {
this.comentario = comentario;
}
public Oferta toOferta() {
Oferta oferta = new Oferta();
oferta.setValor(new BigDecimal(this.valor));
oferta.setDataDaEntrega(LocalDate.parse(this.dataDaEntrega, formatter));
oferta.setComentario(this.comentario);
return oferta;
}
}
Minha classe Oferta:
@Entity
public class Oferta {
@Id @GeneratedValue (strategy = GenerationType.IDENTITY)
private Long id;
private BigDecimal valor;
private LocalDate dataDaEntrega;
private String comentario;
@ManyToOne(fetch = FetchType.LAZY)
private Pedido pedido;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public BigDecimal getValor() {
return valor;
}
public void setValor(BigDecimal valor) {
this.valor = valor;
}
public LocalDate getDataDaEntrega() {
return dataDaEntrega;
}
public void setDataDaEntrega(LocalDate dataDaEntrega) {
this.dataDaEntrega = dataDaEntrega;
}
public String getComentario() {
return comentario;
}
public void setComentario(String comentario) {
this.comentario = comentario;
}
public Pedido getPedido() {
return pedido;
}
public void setPedido(Pedido pedido) {
this.pedido = pedido;
}
}
Alguém pode me ajudar por favor?