문제

내 엔터티 속성을 설정했습니다.

@GeneratedValue
Long id;

데이터베이스의 엔터티에 대한 ID를 생성할 수 있습니다.내 질문은 모든 엔터티가 동일한 증분 번호를 공유하는 이유입니다. 각 테이블은 0부터 계산을 시작해야 하지 않나요?

도움이 되었습니까?

해결책

기본 데이터베이스에 따라 다릅니다.GenerationType 기본적으로 자동이며 최대 절전 모드는 데이터베이스에 따라 세 가지 변형 중 하나를 선택합니다. 특히 하나를 사용하려면 속성으로 설정하십시오. @GeneratedValue

다른 팁

이는 데이터베이스에 따라 다릅니다.JPA 구현은 사용 중인 데이터베이스 시스템에 따라 다른 ID 생성기를 사용합니다.예를 들어 Oracle을 사용하면 단일 시퀀스가 ​​생성되고 해당 시퀀스는 모든 엔터티 유형에 대한 ID를 생성하는 데 사용됩니다.기본적으로는 일반적으로 그럴 이유가 없기 때문에 각 엔터티에 대한 시퀀스를 생성하지 않습니다.자동 증가 열 대신 시퀀스를 사용하는 다른 데이터베이스 시스템에도 동일한 논리가 적용됩니다.

JPA API가 이 동작을 변경할 수 있는지 100% 확신할 수는 없지만 Hibernate 주석이 가능하다는 것을 알고 있습니다.그러나 어떤 데이터베이스를 사용하고 있는지, 어떤 JPA 구현을 사용하고 있는지 알려주지 않았기 때문에 그 이상의 조언을 드릴 수는 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top