1
resposta

Dúvida - Sobre jpa( atualizacao do metodo pagamento)

Olá pessoal, dúvida simples na service ao recuperar o id do pagamento foi alterado o Status do pagamento e logo após foi feito um save.

Minha dúvida é o seguinte, na chamada do findById se ele encontrar, esse objeto estaria como managed pela JPA.
ao alterar nao deveria salvar automaticamente? Sem precisar chamar o .save novamente?

Qual seria as vantagens em mandar salvar novamente e quais seriam as desvantagens em nao chamá-lo?

1 resposta

Olá Igor! Tudo ben?

Quando você utiliza o JPA e faz uma busca por um objeto com findById, ele é de fato carregado no contexto de persistência e se torna um objeto "managed". Isso significa que qualquer alteração feita nesse objeto será detectada pelo JPA e, ao final da transação, essas alterações serão automaticamente sincronizadas com o banco de dados, sem a necessidade de chamar save explicitamente.

No entanto, existem algumas situações em que chamar save explicitamente pode ser vantajoso:

  1. Controle de Transações: Se você estiver trabalhando em um contexto onde a transação é gerenciada manualmente ou precisa de um controle mais fino sobre quando as alterações devem ser aplicadas, chamar save pode ser útil.

  2. Atualizações Parciais: Em alguns casos, você pode querer garantir que apenas certas alterações sejam persistidas. Chamando save, você tem a certeza de que o estado atual do objeto é o que será salvo, o que pode ser útil em cenários complexos.

  3. Claridade de Código: Em algumas equipes, pode ser uma questão de clareza ou estilo de código, deixando explícito que o objeto foi atualizado e salvo.

Por outro lado, não chamar save pode simplificar o código e reduzir a quantidade de operações explícitas, confiando no JPA para gerenciar o ciclo de vida do objeto.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.