최대 절전 모드 4.1.6에서 사용하려고하는 기존 데이터베이스 스키마가 있습니다. Oracle을 포함하여 여러 데이터베이스 버전을 지원해야하므로 ID 생성에 SequenceStyleGenerator를 사용하고 있습니다. 오라클의 생성기와 함께 사용하기 위해 만들어진 시퀀스가 있습니다.Hibernate가 시퀀스에서 1을 뺍니다.
시퀀스에 기존 값 (예를 들어 2)이있는 경우 엔티티에서 저장 또는 업데이트를 호출 할 때 Hibernate가 시퀀스의 nextval을 호출하여 다음 값을 얻고 3을 얻는 것을 볼 수 있습니다. 그런 다음 어떤 이유로 (Hibernate 클래스 OptimizerFactory에서), Hibernate는 시퀀스 값에서 1을 뺀다. 사용하는 id를 얻는다. 이것은 유일 제약 에러 때문에 실패한다. nextval이 3이면 2가 이미 사용된다.
왜 ID에 사용할 값을 얻기 위해 Hibernate가 시퀀스에서 1을 뺀 것이고, 그 시퀀스를 그대로 사용하는 방법은 무엇입니까?
지금까지 시도한 코드를 추가 할 수 있습니까? –