기본적으로, 모든 확장 엔티티 대리 ID 생성을 정의하는 @MappedSuperclass 가지고 싶습니다 나는 구체적인 실체, EntityA, EntityB 및 EntityC의 3 개 종류가있는 경우DataNucleus (JPA)는 @Id에 대해 상속 된 테이블 생성기를 사용할 때 엔티티 별 시퀀스를 지원합니까?
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
...
}
를, 내가 좋아하는 것 다음과 같은 SEQUENCE_TABLE을 확인하십시오 :
SEQUENCE_NAME | NEXT_VAL
--------------------------
EntityA 11
EntityB 31
EntityC 101
... 각 시퀀스는 독립적이며 해당 엔티티에만 사용됩니다. DataNucleus를 사용하여 그러한 일이 쉽게 가능합니까? 이상적으로 각 @Entity에 대해 @TableGenerator를 선언하지 않는 것이 좋습니다. Hibernate는 "prefer_sequence_per_entity"프로퍼티를 사용하여이 동작을 제공하지만, 그렇지 않은 경우에는 몇 가지 다른 기능을 위해 DataNucleus를 선호합니다.
그래, 모든 엔티티 클래스의 시퀀스가 항상 적당하지는 않겠지 만 응용 프로그램의 각 @I Entity에 대한 하나의 공통된 @MappedSuperclass가있을 경우, 기본 클래스를 대상으로하는 클래스 계층 구조에서 적어도 한 수준의 형식 검색을 연기하는 것이 좋습니다. 어쨌든, 나는 응답과 단일 긴 시퀀스는 아마 대부분의 응용 프로그램에 충분 감사합니다. – Shaun