2013-09-08 3 views
1

아래 주석을 사용하여 JPA 1에서 시퀀스를 구현하지만 오류가 발생합니다. 코드 :JPA 문제 @GenerateValue -strategy = GenerationType.TABLE

@TableGenerator(name="tab1", initialValue=1, allocationSize=100 
//using above annotation on entity class 

@Id 
@GeneratedValue(strategy=GenerationType.TABLE, generator="tab1") 
private Integer id; 

데이터베이스 : 오라클

오류 : 실패 시퀀스 테이블 "OPENJPA_SEQUENCES_TABLE"업데이트

시도합니다. 시퀀스 테이블은 일반적으로 데이터 저장소 ID 클래스에서 매핑 도구의 새로 고침 작업을 실행할 때 만들어집니다. 당신이 mappingtool을 실행하지만, 순서 테이블을 작성하지 않은 경우, 실행 자바 org.apache.openjpa.jdbc.kernel.TableJDBCSeq 테이블 "OPENJPA_SEQUENCES_TABLE는"단순히 존재하지 않는 것 같다

답변

0

추가 -action 및 오류 메시지는 다음을 제안합니다.

  1. 콘솔에서 실행중인 테이블을 작성하려면 java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add 명령을 사용하십시오. 일부 세부 사항은 here을 참조하십시오.
  2. here과 같은 매핑 도구를 사용하십시오.
  3. 또는 oracle 콘솔에서 수동으로 테이블을 만들 수도 있습니다.

1 또는 2를 선택한 경우 나중에 테이블이 생성 된 데이터베이스를 확인하십시오.

1

이처럼을 수행해야합니다

@Id 
@TableGenerator(name = "Irakli_GEN", 
     table = "SEQUENCES", 
     pkColumnName = "SEQ_NAME", 
     valueColumnName = "SEQ_NUMBER", 
     pkColumnValue = "CLIENTS_SEQ", 
     allocationSize = 1) 
@GeneratedValue(strategy = GenerationType.TABLE, generator = "Irakli_GEN") 

그것은 테이블 시퀀스를 생성해야합니다 - 당신을 위해 자동으로 또한 내부 시퀀스를 만들 수 있습니다. 내 엔티티에이 코드를 사용하고 작동합니다.