Questão 99 · Informática: Programação e algoritmos
No que se refere a testes de verificação de qualidade de códigos automatizados e a persistência, julgue os próximos itens.
No JPA 2.0, a exceção OptimisticLockException pode ocorrer na tentativa de atualizar ou remover uma entidade modificada por outra transação, independentemente de controle de versão aplicado à entidade.
Julgue o item:
Gabarito: ERRADO
Gabarito definitivo divulgado pela banca Cebraspe (TRF6 2025).
Comentário
Gabarito: ERRADO.
A OptimisticLockException no JPA (Java Persistence API) é, de fato, lançada quando uma transação tenta atualizar ou remover uma entidade que foi modificada por outra transação desde que a primeira a leu. No entanto, a afirmação de que isso ocorre "independentemente de controle de versão aplicado à entidade" está incorreta.
O controle de concorrência otimista, que gera a OptimisticLockException, depende fundamentalmente da existência de um mecanismo de controle de versão na entidade. Geralmente, isso é implementado através de um campo @Version (um número inteiro ou um timestamp) na classe da entidade. Quando a entidade é lida, o valor da versão é registrado. Ao tentar persistir as alterações, o JPA verifica se o valor da versão no banco de dados ainda corresponde ao valor lido. Se não corresponder (indicando que outra transação modificou a entidade), a OptimisticLockException é lançada. Sem um campo de versão, o JPA não tem como detectar essas modificações concorrentes de forma otimista.
Fundamentos: JPA Specification (especificação JPA)
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova Cebraspe TRF6 2025 (Analista Judiciário – Área: Apoio Especializado – Especialidade: Análise de Sistemas de Informação), questão 99, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.