JPA를 사용하여 낙관적 잠금을 구현하려고합니다. @Version 어노테이션이있는 하나의 추가 필드, 버전을 추가하면 암시 적 낙관적 잠금을 적용하는 데 사용할 수 있음을 읽었습니다. 구현 후 여러 사용자가 동일한 엔티티를 업데이트하려고 할 때 업데이트 손실을 방지 할 수 있습니다. 업데이트가 이루어지고 버전 필드가 엔티티의 버전 필드와 일치하지 않으면 다른 사용자가 의미 엔티티를 업데이트했습니다. 행이 업데이트되지 않으므로 손실 된 업데이트가 방지됩니다. 내가 엔티티를 업데이트, 내가 가진 모든 내가 명시 적으로 업데이트 쿼리를 호출 할 필요가 없습니다 의미 Spring 트랜잭션 관리자에 의해 엔터티 필드와 데이터베이스 업데이트가 촬영되어 치료를 업데이트 인 위치를 봄 트랜잭션 관리 지원을 사용하고영구 엔티티가 업데이트되었는지 여부를 확인하는 방법은 무엇입니까? Spring 트랜잭션 관리
.
내 질문은 특정 사용자에 대한 업데이트가 성공적인지 어떻게 알 수 있습니까?
감사합니다. 예, OLE 예외가 발생합니다. 하지만 제 질문은 스프링 트랜잭션 관리를 사용하려고했기 때문에 업데이트를 실행하거나 명시 적으로 커밋하지 않았습니다. 그렇다면 어떻게이 예외를 잡아 적절한 조치를 취할 수 있습니까? –
http://stackoverflow.com/questions/17203452/how-to-catch-optimisticlockexception-in-jpa에 따르면 메소드 외부에서 처리하거나 내부에서 명시 적으로 entityManager.flush()를 호출 할 수 있습니다. – Justas