tibero 사용중인데 시퀀스 문의 드립니다. 0 3 2,180

by zumsim [Tibero] tibero 시퀀스중복 [2023.06.22 18:00:55]


현재 상황을 간략히 말씀드리면

컨트롤러에서 insert를 실행하는 dao를 for문안에서 호출해서

for문이 도는만큼 insert를 하려고 합니다.

근데 처음만 들어가고 그 뒤부턴 들어가질 않습니다.

이클립스로 콘솔보면 딱히 오류도 안뜨고 그냥 첫번쨰 들어가고 그 뒤로는 멈춰버리네요.

그래서 max+1로도 해보고 

아예 for문안에서 시퀀스를 새로 따서 list에 담아서 iterate를 사용해 돌려도 결과는 계속 같은데

혹시 팁 같은거 주실 수 있을까요ㅜㅜ 

by 닭뇌 [2023.06.22 18:40:14]

이클립스로 콘솔..이라고 하신거를 보니 java인가요?

java 단에서 for 문에 시퀀스를 select한 다음 조회된 시퀀스를 insert하시려고 하는 건가요?

소스가 어떤 식으로 되어 있는지 모르겠는데..

트랜잭션이 걸린상태에서 연속으로 시퀀스를 가져오려면 interface나 트랜잭션을 선언한 함수에서 에 NOT_SUPPORTED를 해줘야 정상적으로 가져옵니다..

예) @Transactional(propagation=Propagation.NOT_SUPPORTED)

 

이 경우가 아닌가 싶은데요...그런데 max+1 도 안되는건 좀 이상하네요??

 


by jkson [2023.06.23 07:52:01]

소스코드가 없으니 실제 무슨 문제가 일어나는지는 디버그 돌리면서 직접 확인해 보셔야 할 것 같습니다.

1. 실제 데이터 건수만큼 for문이 돌아가는가?

2. 데이터 삽입을 위한 오브젝트에 실제 데이터가 잘 담겨있는가?

3. 데이터베이스 primary key가 중복되지 않도록 데이터가 잘 세팅이 되었는가?

4. insert문이 실제로 수행되었는가?

5. 에러 처리는 적절한가? 실제 에러가 발생하는데 무시되고 있는 것은 아닌가?

6. 윗분 말씀대로 트랜잭션 처리는 적절한가?


by 포동푸우 [2023.06.23 20:20:21]

대략적인 상황만 설명하시면, 여기 계신 분들이 문제되는 부분을 알기가 어려워서, 대략적인 가이드만 드릴 수 있습니다. 

작성하신 코드 부분이나, 오류 메시지를 알려 주시면, 구체적인 부분을 도와 주실 수 있을 것 같아요  

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입