2012-04-12 2 views
0

Especially when working with JPA v1.0, try not to use id inheritance.JPA 2 @Id 속성

JPA 2의 차이점은 무엇입니까 상속? 특히 strategy=GenerationType.IDENTITY을 사용하는 경우 예에서 StaplerChair이 동일한 ID를 가질 수 있습니까? 또는 JPA 구현 및/또는 데이터베이스 드라이버에 의존합니까?

+1

것도이 지역에 JPA2 변경되지 않습니다. 당신은 항상 상속 트리의 루트 클래스에서 당신의 ID를 정의합니다. – DataNucleus

답변

2

블로그 게시물이 완전히 의미가 있다고 생각하지 않습니다.

@MappedSuperclass가 아닌 한 수퍼 클래스에서 ID를 정의 할 수 있는지조차 확실하지 않습니다.

이드의 부족에 대해 걱정되는 것 같습니다. n 개의 하위 클래스가있는 ID를 모두 사용할 수 없으면 하나의 클래스만으로 부족한 시간을 가질 수 있습니다. 그러나 길지 않은 int를 사용하는 한 id를 다 쓰는 것은 문제가되지 않습니다.

정수 ID는 초당 한 번 삽입 할 때 약 100 년 지속됩니다. 아직 "빨리"는 아니지만 더 높은 처리량이 부족할 수 있습니다.

오랫동안 1 밀리 초당 약 3 억 년이 걸릴 것입니다. 별로 "곧".

참조는 http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Running_Out_of_Numbers

+0

'long'ID가 부족하지는 않겠지 만 동시성에 대해 더 염려합니다 :) –