부실 오브젝트 예외는 읽은 시간과 갱신 된 시간 사이에 엔티티가 수정되면 발생합니다. 이것은 단일 트랜잭션 내에서 발생할 수 있지만 트랜잭션의 객체를 읽고,이를 (예 : 컨트롤러 계층에서) 수정 한 다음 다른 트랜잭션을 시작하고 병합/업데이트 할 경우에도 발생할 수 있습니다 (이 경우 분 또는 시간 읽기와 업데이트를 분리 할 수 있습니다).
사용자 간의 충돌을 피할 수 있도록 예외가 throw됩니다.
충돌에 대해 신경 쓰지 않는다면 (즉, 마지막 업데이트가 항상 승리하고 이전 것의 내용을 대체 한 경우) 낙관적 잠금을 사용하지 마십시오. 충돌이 염려되는 경우 StaleObjectExceptions이 발생하고 최종 사용자에게 의미있는 메시지를 표시하고 데이터를 다시로드하고 다시 수정하도록 요청해야합니다. 그들을 피할 방법이 없습니다. 당신은 낙관적이어야하며 그들이 자주 일어나지 않을 것을 희망해야합니다. 읽고 엔티티
업데이트는
응용 프로그램은이 서비스에 의해 만들어진 동일한 트랜잭션에서 작성할 때 동기화 된 트릭을 경우에만
- 예외를 작동
주에만 발생 클러스터되지 않았습니다.
동시 트랜잭션에 의해 업데이트되는 엔티티에 관계없이 동시 업데이트를 금지하므로 처리량도 크게 감소 할 수 있습니다. 전체 거래 기간 동안 전체 테이블을 잠근 경우와 같습니다.