2013-05-05 2 views
0

두 개의 스토어드 프로 시저를 호출하는 스프링 트랜잭션 하에서 실행되는 메소드가있다.Hibernate 세션 데이터에 스토어드 프로 시저가 접근 할 수 없다.

  1. 먼저 저장 프로 시저가 성공적으로 실행하지만 데이터는
  2. 지금, 두 번째 저장 프로 시저를 사용할 수 없습니다 이전 데이터를 조회하려고 (때문에 거래의) 아직 커밋되지 않습니다.

누가 내게 (두 번째) 저장 프로 시저에 커밋되지 않은 데이터를 공유하는 방법에 대한 포인터를 제공 할 수 있습니다.

참고 : Oracle 데이터베이스를 사용하고 있으므로이 옵션을 지원하지 않으므로 사용하지 않는 격리를 사용하십시오.

추신 : 검색 할 때 최대 절전 모드 세션을 플러시하도록 요청한 답변이 있습니다. 그러나 나를 위해 일하지 않았다.

+0

최대 절전 모드 세션이이 문제와 관련이없는 것을 볼 수 없습니다. 저장 프로시 저는 데이터베이스 내에서 실행됩니다. 그리고 모든 것이 단일 트랜잭션에 있기 때문에 두 번째 SP가 첫 번째 SP에서 수행 한 수정을 볼 수없는 이유는 알 수 없습니다. –

+0

동일한 세션을 사용하여 두 번째 절차를 실행하는 경우 제대로 작동해야합니다. 가능한 경우 코드를 공유하여 완벽한 대답을 얻으십시오. – VKPRO

답변

0

하나의 저장 프로 시저를 사용하십시오. 그렇게 할 수 없다면 첫 번째 저장 프로 시저 후에 커밋합니다. 두 번째 SP가 첫 번째 결과를 쿼리 할 수 ​​있어야하므로 자동으로 사용자의 경계가됩니다.

관련 문제