Good afternoon! I am new to java and Spring and am needing help in the code below. I need to commit every commit iteration, but it is only done at the end of the transaction, I created the persist method, thinking it would open a new transaction and commit, but nothing. Could someone tell me how to proceed? Thanks in advance.
@Override
@Transactional
public String enviarPedidos() {
LOGGER.info("MassivoPedido :: enviarPedidos");
final String[] listStatus = {Constante.UPLOAD_MASS_STATUS_AG_ENVIO, Constante.ENVIAR_MASS_PED_ERROR};
final List<MassivoPedido> massivoPedidos = this.buscarPorStatus(listStatus);
final List<MassivoPedidoParametro> massivoPedidoParametros = this.massivoPedidoParametroComponent.findAll();
final Date agora = new Date();
JSONObject retornoCriarPedidoJSONObject;
for (MassivoPedido massivoPedido : massivoPedidos) {
try {
for(MassivoPedidoParametro massivoPedidoParametro : massivoPedidoParametros){
try {
if (massivoPedidoParametro.getCnpjFornecedor().equalsIgnoreCase(massivoPedido.getCnpjFornecedor())) {
retornoCriarPedidoJSONObject = Util.buildJSONObject((this.fornecedorClient.criarPedido(massivoPedidoParametro, massivoPedido).toString().replace("Status","returnCode").replace("Message","returnMessage")));
LOGGER.info("MassivoPedido :: enviarPedidos - {}", retornoCriarPedidoJSONObject.toString());
if (retornoCriarPedidoJSONObject.getString("returnCode").equals("1") || retornoCriarPedidoJSONObject.getString("returnCode").equals("ERROR")) {
massivoPedido.setDatahoraReg(agora);
massivoPedido.setRetornoFornecedor(retornoCriarPedidoJSONObject.toString());
massivoPedido.setStatus(Constante.ENVIAR_MASS_PED_ERROR);
if (retornoCriarPedidoJSONObject.getString("returnMessage").equals("Duplicate PoNo")) {
massivoPedido.setStatus(Constante.ENVIAR_MASS_PED_SUCCESS);
}
} else {
massivoPedido.setStatus(Constante.ENVIAR_MASS_PED_SUCCESS);
massivoPedido.setDatahoraReg(agora);
massivoPedido.setRetornoFornecedor(retornoCriarPedidoJSONObject.toString());
}
}
}
catch (Exception e) {
massivoPedido.setStatus(Constante.ENVIAR_MASS_PED_ERROR);
massivoPedido.setDatahoraReg(agora);
massivoPedido.setRetornoFornecedor("Erro ao criar pedido " + massivoPedido.getIdPedido() + " no fornecedor " + massivoPedido.getCnpjFornecedor() + " " + e.toString());
}
this.persiste(massivoPedido);
}
} catch (Exception e) {
LOGGER.error("Erro ao enviarPedidos - Massivo Pedido. Erro: {}", e.toString());
}
}
return null;
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void persiste(MassivoPedido massivoPedido) {
super.update(massivoPedido);
}