我有一个对象,其中包含另一个对象的列表。
@Entity
@Table(name = "PEDIDO")
public class Pedido implements Serializable {
private static final long serialVersionUID = -6787191900085416567L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm")
private Date instante;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "pedido")
private Pagamento pagamento;
@ManyToOne
@JoinColumn(name = "CLIENTE_ID")
private Cliente cliente;
@ManyToOne
@JoinColumn(name = "ENDERECO_DE_ENTREGA_ID")
private Endereco enderecoDeEntrega;
@OneToMany(mappedBy = "id.pedido")
private Set<ItemPedido> itens = new HashSet<>();
//Getters and Setters
}
我还有一个POST方法来添加对象:
@PostMapping
public ResponseEntity<Void> insert(@Valid @RequestBody Pedido obj) {
URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}")
.buildAndExpand(pedidoService.insert(obj).getId()).toUri();
return ResponseEntity.created(uri).build();
}
我的POST请求保持如下:
{
"cliente":{
"id":1
},
"enderecoDeEntrega":{
"id":1
},
"pagamento":{
"numeroDeParcelas":10,
"@type":"pagamentoComCartao"
},
"itens":[
{
"quantidade":2,
"produto":{
"id":1
}
},
{
"quantidade":2,
"produto":{
"id":3
}
},
{
"quantidade":1,
"produto":{
"id":2
}
}
]
}
问题在于,当请求从服务器端到达时,即使我发送了多个项目,HashSet也仅包含一个项目。
有人经历过吗?