2013-06-10 1 views
0

기본적으로, 모든 확장 엔티티 대리 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를 선호합니다.

답변

1

짧은 대답 : 아니오.

더 복잡한 대답 : 아니오,하지만 누군가가 필요하다면 그런 일을 할 수 있습니다. 즉, 소수 관심 형 기능이며 BaseEntity와 관련이있는 부분, BaseEntity에 대해 상속 된 부분, 그리고 BaseEntity에 대한 필요성을 고려하여 사용할 수없는 상황이 많다는 점에서 큰 단점이 있습니다. 관련 객체를 결정할 수 있어야합니다

+0

그래, 모든 엔티티 클래스의 시퀀스가 ​​항상 적당하지는 않겠지 만 응용 프로그램의 각 @I Entity에 대한 하나의 공통된 @MappedSuperclass가있을 경우, 기본 클래스를 대상으로하는 클래스 계층 구조에서 적어도 한 수준의 형식 검색을 연기하는 것이 좋습니다. 어쨌든, 나는 응답과 단일 긴 시퀀스는 아마 대부분의 응용 프로그램에 충분 감사합니다. – Shaun

관련 문제