Boa tarde.
Estou tendo um problema (EntityExistsException) ao tentar zerar um ArrayList, recarregá-lo com novos dados e gravar ao final do processo completo do form.
A situação seria a seguinte, eu tenho uma coleção de PedidoItem em minha entidade Pedido:
@OneToMany(cascade = CascadeType.ALL, mappedBy = "pedido", orphanRemoval = true)
private List<PedidoItem> itens;
Essa coleção já vem carregada, mas o usuário pode trocar a Nota de Origem vinculada e recarregar os itens, então estava tentando zerar o ArrayList e preenchê-lo com as novas informações.
Mas neste momento, não posso efetivar a remoção dos itens, pois o usuário pode vincular uma nova Nota e simplesmente cancelar a alteração do Pedido.
pedido.setItens(new ArrayList<>());
nfeFiltro.getProdutos().stream()
.forEach(nfeProduto -> {
PedidoItem pedidoItem = new PedidoItem();
pedidoItem.setPedido(pedido);
PedidoItemId pedidoItemId = new PedidoItemId();
pedidoItemId.setPedidoLinha(nfeProduto.getId().getNfeNumeroDoItem());
pedidoItem.setId(pedidoItemId);
Como eu poderia resolver esta situação? Eu já manipulei o EqualsAndHashCode do PedidoItem e fiz outras alterações que não resolveram.
A única forma que consegui resolver, foi fazendo o que não queria. Usando o em.remove() para cada item da lista antes de recarregá-la.
Obrigado desde já.