2011-11-16 87 views
4

我使用jdbi inTransaction()函数将sql查询作为交易执行。我想知道内部使用什么类型的锁定机制。另外,整个表是在交易过程中锁定的,还是只是需要更新的记录?jdbi中的交易

回答

8

该事务纯粹是在数据库级别。它将使用数据库/连接的默认隔离级别,除非被覆盖。

如果你使用它接受一个回调在inTransaction(...)方法,还有就是功能的一种形式,它允许你设置隔离级别:

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

-Brian

+2

我是正确的说,[官方文档(http://jdbi.org/archive.html)没有按”没有关于交易的部分(甚至没有例子,甚至没有字!)? – leonbloy

+0

@lelebly你是正确的! [transaction javadocs]中也没有任何代码示例(http://jdbi.org/apidocs/org/skife/jdbi/v2/tweak/transactions/LocalTransactionHandler.html)。 [交易注释文档](http://jdbi.org/apidocs/org/skife/jdbi/v2/sqlobject/Transaction.html)更加简洁,但注释非常易于使用。 –