2013-08-13 7 views
4

나는 최근에 하나의 튜토리얼에서 Spring이 트랜잭션 커밋 후에 커넥션을 닫는다는 것을 읽었다.트랜잭션을 커밋 한 후 Spring이 연결을 닫습니까?

사실입니까? Spring 레퍼런스 문서에서 그걸 발견 할 수 없다.

그 이유는 무엇입니까? 지금은 연결과 트랜잭션 사이에 일대 다 관계가 있다고 생각했습니다.

답변

6

커밋 또는 롤백 중 하나 일 수있는 트랜잭션이 완료되면 봄 호출 close(). close()이 실제로 JDBC 연결을 닫는 지 여부는 DataSource 구성에 따라 다릅니다. 일반 JDBC 연결 인 경우 실제로 닫힙니다. 연결 풀이면 닫을 때 풀에 반환됩니다.

+0

답장을 보내 주셔서 감사합니다. 연결을 종료하는 봄 수업을 가르쳐 주시겠습니까? –

+0

'org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection()'을 보라. 이것은 TransactionSyncronization 핸들러뿐만 아니라'DataSourceTransactionManager.doCleanupAfterCompletion()'에 의해 호출됩니다. – AngerClown

0

아니요, SessionFactory 콩이 파괴 된 경우에만 연결이 닫힙니다.

관련 문제