Junior — Middle
Explique o princípio de funcionamento do bloqueio otimista nos sistemas de gestão de dados.
sobes.tech IA
Resposta da IA
O bloqueio otimista é uma abordagem para gerir o acesso concorrente aos dados, assumindo que os conflitos são raros e que os bloqueios não são estabelecidos antecipadamente. Em vez disso, ao atualizar os dados, verifica-se se eles mudaram desde a última leitura.
Princípio de funcionamento:
- O cliente lê os dados juntamente com uma versão ou soma de verificação.
- Realiza as alterações necessárias localmente.
- Ao tentar gravar, verifica se a versão atual dos dados corresponde à que foi lida.
- Se as versões coincidirem, a atualização é bem-sucedida.
- Se não coincidirem, significa que os dados foram modificados por outro processo, e a operação é revertida ou repetida.
Em Java, isso é frequentemente implementado através de um campo de versão na entidade e a anotação @Version ao usar JPA/Hibernate.
Exemplo:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private int version; // campo para bloqueio otimista
// getters e setters
}