0
우리는 Java와 Hibernate를 사용하는 응용 프로그램을 가지고 있습니다. 낙관적 인 잠금과 관계형 데이터베이스를 사용합니다. 두 명의 사용자가 동시에 수정하려고하는 자원 풀이있는 일반적인 상황이 있습니다. 한 사용자는 자원을 편집 할 수 있고 다른 사용자는 화면에서 "스택 추적"을 가져옵니다. 이러한 상황을 처리하는 일반적인 방법은 무엇입니까? 비관적 인 잠금을 사용할 수는 있지만 응용 프로그램의 성능이 크게 저하됩니다 ...롤백 트랜잭션에 대한 일반적인 예외 처리
나는 또한 기술적 측면에 관심이 있습니다. 다른 트랜잭션이 이미 데이터에 대한 쓰기를 수행하여 트랜잭션이 롤백되면 특정 예외가 항상 throw됩니까? 그렇다면 응용 프로그램에서 일관되게 동일한 방식으로 처리하는 것이 쉽습니다. – user1340582
낙관적 인 잠금 실패를 나타내는 여러 결과가 있다고 생각합니다. 예외에는 오류가 붙어 있으므로 getErrorCode()를 호출하고 "롤백"을 나타내는 하나 이상의 값과 일치하는지 확인하십시오. 개발을 위해서는 아마도 오류를 일으키고 반환 된 오류 코드를보고 코드에 연결하는 것이 가장 쉽습니다. –
최대 절전 모드의 낙관적 인 잠금 실패는 데이터베이스 관련 예외가 아니기 때문에 기본 SQLException과 관련이 없다는 점에 유의할 가치가 있습니다. 그것은 행에 영향을주지 않는 업데이트입니다. –