EJB 2.x CMP 엔티티 Bean의 경우 관계형 데이터베이스 테이블에 충돌 검출을 위한
열을 추가할 수 있습니다. 이 충돌 검출 열은 레코드가 갱신되었는지
판별하기 위해 예약된 추가 데이터베이스 열입니다.
충돌 검출 열을 관리하려면 고유의 데이터베이스 트리거
구현을 제공해야 합니다.
다음은
변경이 예상되지 않는
액세스 목적의 술부의 속성을 포함하는, 다른 변경이 예상되지 않는 동시성 제어
설계 상에서 충돌 검출을 위한 열을 추가하려고 선택할 때 얻어지는 이점입니다.
- 과규정화 UPDATE 문에는 충돌 검출 열과 1차 키만 필요합니다. 여러 개 선택된 변경이
예상되지 않는 술부를 사용하여 이 두 개의 열을 선택하면 I/O 조작 수가 감소합니다.
- 충돌 검출 열을 사용하면 변경이 예상되지 않는 술부를 널 입력 가능한 열이나
지원되지 않는 변경이 예상되지 않는 동시성 제어 데이터 유형(예: BLOB 및 CLOB)에
맵핑할 수 없다는 제한사항을 해결할 수 있습니다.
다음은 충돌 검출 열 사용에 관한 제한사항입니다.
- 충돌 검출 열 값의 수정 또는 갱신은 지원되지 않습니다.
- 충돌 검출 열을 사용하기로 선택한 경우,
변경이 예상되지 않는 액세스 목적의 술부의 속성을 포함하는 다른 변경이 예상되지
않는 동시성 제어 설계보다 우선적으로 충돌 검출 열을 사용해야 합니다. 또한 모든
변경이 예상되지 않는 술부 설정은 변경이 예상되지 않는 액세스 목적에서 무시됩니다.
- 충돌 검출을 위한 열을 추가하는 것은 하향식 및 중간 합류식 맵핑에
사용할 수 있습니다. 상향식 맵핑은 1지원되지 않습니다.
- "DISCRIM" 또는 "OCC_"로 시작하는 열 이름은 EJB 맵핑 도구에 예약된 이름입니다.
- "DISCRIM" 또는 "OCC_" 문자열로 시작하는 CMP 필드 이름을 지정하지 마십시오.
- CMP를 이름이 "DISCRIM" 및 "OCC_" 문자열로 시작하는 다른 CMP와 연관시키지 마십시오.
다음 접근법 중 하나를 선택하여 충돌 검출을 위한 열을 추가하십시오.