Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

486
Views
Cómo deshabilitar el bloqueo optimista en Spring Data JPA

La anotación de bloqueo optimista no funciona.

 @OptimisticLocking(type = OptimisticLockType.NONE) public class TestEntity { .... }

y la anotación @Lock tampoco funciona:

 public interface TestRepository<TestEntity, Long> extends JpaRepository<Version, Long> { @Lock(LockModeType.NONE) TestEntity findByName(String name); }

Entonces, trato de llamar:

 entityManager.refresh();

Funciona, pero es una solución.

 EntityManager em = sharedEntityManagerBean.getObject(); em.refresh(testEntity, LockModeType.OPTIMISTIC); testRepository.save(testEntity);

¿Podría decirme por qué la anotación de bloqueo optimista no funciona y cuál es la mejor manera de actualizar la fila DB (entidad) con los datos más recientes?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

OptimisticLockType.NONE deshabilita el mecanismo de bloqueo optimista predeterminado para TestEntity .

Sin embargo, eso solo sería útil si heredó la propiedad @Version de una clase base que está anotada con @MappedSuperclass o @Inheritance .

En su caso, podría simplemente eliminar la propiedad @Version si no desea un bloqueo optimista para esta entidad. Sin embargo, suele ser una mala idea, ya que podría provocar la pérdida de actualizaciones .

Tal vez desee utilizar el bloqueo optimista sin versión que puede reducir la tasa de conflictos generados por cambios de propiedad que no se superponen.

De nuevo, @Lock(LockModeType.NONE) es inútil ya que está implícito de forma predeterminada. Puedes eliminar eso también. Eso solo está destinado a adquirir un bloqueo lógico o físico explícito .

Está sacando conclusiones equivocadas al pensar que el bloqueo optimista está causando un problema que ni siquiera describió.

Por lo tanto, debe formular la pregunta de manera adecuada para que quede clara:

  1. ¿Cuál es el problema real que está tratando de resolver?
  2. ¿Quieres un bloqueo optimista o no?
  3. ¿Obtiene una excepción particular al guardar?
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!