JPA에서 낙관적 잠금을 위해 @Version으로 주석 처리 된 필드에 대해 가장 적합한 유형에 대한 의문점이 있습니다.낙관적 잠금을위한 JPA 버전 필드에 가장 적합한 유형
는이 API의 자바 독 (http://docs.oracle.com/javaee/7/api/javax/persistence/Version.html)는 말한다 :
"는 다음과 같은 유형의 버전 속성에 대한 지원됩니다. INT, 정수, 짧은, 짧은, 긴, 긴,의 java.sql.Timestamp을" 다른 페이지 (http://en.wikibooks.org/wiki/Java_Persistence/Locking#Optimistic_Locking)에서
는 말한다 :..
이"JPA는 필드가 숫자 또는 타임 스탬프 값이 될 수 있습니다 각 업데이트에 업데이트 될 때 낙관적 잠금 버전 필드를 사용하여 지원하는 숫자 값이 권장됩니다 숫자 값은 타임 스탬프보다 정확하고, 이식 가능하며, 성능이 뛰어나고 다루기 쉽습니다. "
"타임 스탬프 잠금은 테이블에 이미 마지막으로 업데이트 된 타임 스탬프 열이있는 경우 자주 사용되며 마지막으로 업데이트 된 열을 자동으로 업데이트하는 편리한 방법이기도합니다. 타임 스탬프 버전 값은 숫자 버전보다 유용 할 수 있습니다 객체가 마지막으로 업데이트 된 시점에 관련 정보를 포함합니다. " 내가 가진
질문은 다음과 같습니다
당신이 lastUpdated 필드를해야 할 것 또는 숫자 버전 필드와 다른 필드에 타임 스탬프를 가지고하는 것이 좋습니다되는 경우 타임 스탬프 형식이 더 나은가요?
숫자 형식 (int, Integer, short, short, long, Long) 중에서 선택하는 것이 가장 좋습니다 (각 유형의 길이를 고려). 내 말은, 최선은 Long이라고 생각하지만 각 행마다 많은 공간이 필요합니다.
버전 필드가 마지막 숫자 숫자 (예 : 짧은 필드의 32,767)에 도달하면 어떻게됩니까? 다음 단계에서 다시 1에서 시작합니까?