봉투 : 제이보스 (H2, MySQL은, 포스트 그레스), JPA, 3.3.x는 현재 우리의 기본 키가 위의 주석을 사용하여 만든 응용 프로그램 특정 종자 데이터 인구
-
최대 절전 모드. 우리는 많은 사용자 (~ 백만 명의 사용자)를 지원하고 어떤 키를 사용해야 하는지를 예상합니다. 정수 또는 Long이어야하며 위 선언의 서명되지 않은 버전을 사용해야합니까?@Id @GeneratedValue(strategy = IDENTITY) private Integer key;
설치시 몇 가지 시드 데이터로 채워야하는 j2ee 응용 프로그램이 있습니다. 구매시, 고객은 응용 프로그램 위에 자신의 데이터를 작성합니다. 우리는 향후 출시를 위해 데이터를 제공, 수정 또는 추가 할 수있는 충분한 공간이 있는지 확인하기 만하면됩니다. 이것을 지원하는 가장 좋은 방법은 무엇인가요? 특정 ID (예를 들어 1000)에서 모든 테이블 식별자를 시작했지만 기본 키 생성을 수정하여 테이블 또는 시퀀스 기반 생성기를 사용하도록 요구했으며 ~ 100 개의 테이블이 있습니다. 이것이 올바른 전략인지 확실하지 않습니다.
우리는 키의 부호있는 정수 방법을 사용하는 경우 모든 고객 별 데이터를 사용할 수 있도록 아래의 0 (예 - 제가 숫자)부터 다 같은 종자 데이터를 가지고 감각을 만들 것 0 이상 (예 : + 숫자)
-ve 숫자는 제대로 작동하는 것 같습니다. 충돌에 대한 가능한 사례는 2,147,483,647에 도달 한 후 생성 된 ID 오버플로가 -2,147,483,648로 이동하고 0으로 계산되기 시작하는 방법입니다. – user339108
@ user339108 : 음수 ID를 사용하면 충돌이 발생해서는 안되며, 이것이이 솔루션이 좋은 이유입니다. 다른 질문에 대해서는 제너레이터가 -2,147,483,648로 이동하지 않는다고 생각합니다 (하지만이를 확인해야합니다). 당신이 안전하고 싶다면 아마도 길게 사용하십시오. –
크기 조정 요구 사항에 대해 잘 모르겠습니다. 가능하면 Long을 피하는 것이 좋습니다. – user339108