문제

내가 사용하는 순서 저장에 대한 도메인 객체를 인스턴스에서 오라클 데이터베이스입니다.나는 순서가 있는 각 데이터베이스에 테이블.내가 사용하는 경우에 저장 기능을 사용자 또는 자원을 예를 들어,그것은이 만든 새로운 자원이 첫 번째 시도에서만 사용되는 ID 입었 70?순서 보여 적절한 다음 수-42 이후 최대 id 테이블 41.왜 id=70 을 삽입하는 데 사용되는 새로운 리소스?

또한 옆에서 모든 시도를 삽입 실패는 이러

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into GRARESOURCE (decomm
issioned, disabled, criticality, resourceClass, resourceGroupId, resourceName, ownerId, resourceSegmentId, resourceTypeId, riskSco
re, targetIP, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [GRA.SYS_C0012183]; nested exception is org.hibernate.e
xception.ConstraintViolationException: Could not execute JDBC batch update

확실하지 않은 무엇이 잘못이기 때문에 일어나는 후에 코드를 구조 조정...우리가 어디로 이동 코드로 새로운 패키지..

편집:내가 발견 밖으로 원인을 참조하십시오 내 응답을..니다.

도움이 되었습니까?

해결책 4

내가 깨달의 주요 원인 문제입니다.나는 이전에 사용했던 이 SequencePerTableOracleDialect,나는 그에게서 하나의 이전 게시물에 의해 버트 Beckwith.방언이 새로 생성 시퀀스에 대한 각각의 표면 응용 프로그램은 시작과 유사한 도메인 등을 변환하는 테이블.방언 또한 모든 테이블 id 순서를 통해 관리 시스만하고 일반적인 순서를 사용하지 않은 모든 삽입 데이터베이스에서(기본 전략) 중의 코드 구조조정을 했을 제거한 주문 방언이 되었을 사용하여 기본 10g 있습니다.

그게 무엇이 문제를 일으키는!

나는 다음을 참조하수 테이블에 연결된 시퀀스는 다음의 가치는 어디서 나는 것을 알게 다음 val=42resource_sequence 는 오른쪽부터 max(id)에 자원 테이블은 41.

덕분에 많은 사람에 대한 통찰력을 어떤 방법으로 도움을 나에게 회고 실질적인 원인!에 대한 필요로 하는 사람들에 대한 자세한 내용을 알고 사용자 지정 방언 그

다른 팁

시퀀스는 숫자를 낭비 할 수 있습니다. 즉, 테이블의 모든 기록은 반드시 갭없이 반드시 하나 일 것입니다.즉, 이전 DB 레코드가 ID= 41이 있음에도 불구하고 문제가 문제를 나타내지는 않지만 사용자의 70으로 점프한다는 사실.

테이블의 최대 ID가 41

이기 때문에

시퀀스는 테이블의 최대 값을 보지 않고 다음을 얻습니다.그들은 현재 순차 번호를 저장하고 다음 값을 사용합니다.

실제 번호를 다음과 같이 확인할 수 있습니다.

select mysequence.currval from dual
.

문제는 GRA.SYS_C0012183 제약 조건에 있습니다.이 수표의 것을보십시오. 그리고 이것이 기본 키 인 경우 my_table_pk와 같은 더 읽을 수있는 이름을 사용할 수 있습니다.

SYS_C0012183 기본 키의 제약 조건?그것은 정의하지 않는다면 id 칼럼(는,나는 가정은 열에 의해 채워진 시퀀스는)?

  • 어떻게 당신이 결정하는 다음의 값 순서 42?당신은 별도에 대한 쿼리는?
  • 를 기대하고 있습 순서를 줄 간격번호?그렇다면,그것은 문제입니다.시퀀스는 고유한 값을 반환 하지만 그들은하지 않는다는 보장이에 틈이 없게 됩니다(사실,보장할 수 있는 것이 될 것입니다 격차 때문에 데이터베이스를 종료하거나 시퀀스가 제거에서 공장 또는 트랜잭션 롤백)됩니다.
  • 당신은 어떻게 사용하여 순서?거기에서 트리거하십니다.또는 최대 절전 모드를 사용하도록 구성되어 순?는 경우 최대 절전 모드를 사용하도록 구성된 시퀀스,포스트 구성이 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top