2011-11-16 5 views
4

jdbi inTransaction() 함수를 사용하여 트랜잭션으로 sql 쿼리를 실행합니다. 나는 내부적으로 어떤 종류의 잠금 장치가 사용되는지 알고 싶습니다. 또한 트랜잭션 동안 전체 테이블이 잠겨 있거나 업데이트해야하는 레코드가 있습니까?jdbi의 트랜잭션

답변

8

트랜잭션은 순전히 데이터베이스 수준입니다. 덮어 쓰지 않는 한 데이터베이스/연결에 대한 기본 격리 수준을 사용합니다.

는 콜백을 허용 inTransaction (...) 방법을 사용하는 경우,이 격리 레벨 설정을 허용하는 함수의 형태가있다 :

<ReturnType> ReturnType inTransaction(TransactionIsolationLevel level, 
             TransactionCallback<ReturnType> callback) 

브라이언을

+2

바로 [공식 문서 (http://jdbi.org/archive.html) '아무튼 말하는 내가 오전 :

여기에, 예를 들어, 테이블 - 및 행 수준 잠금에 대한 MySQL의 문서입니다 거래에 관한 섹션 (심지어 예제, 심지어는 단어!)이 있습니까? – leonbloy

+0

@leonbly 당신이 정확합니다! 또한 [트랜잭션 javadocs] (http://jdbi.org/apidocs/org/skife/jdbi/v2/tweak/transactions/LocalTransactionHandler.html)에 코드 샘플이 없습니다. 그리고 [transaction annotation docs] (http://jdbi.org/apidocs/org/skife/jdbi/v2/sqlobject/Transaction.html)는 훨씬 더 간결하지만 주석은 매우 사용하기 쉽습니다. –