2012-01-24 42 views
3

我们正在使用SQL Server,并且快照隔离可能是改善性能并解决某些死锁问题的好方法。弹簧隔离支持? MSQL快照隔离

假设我们真的需要更改为快照隔离,我似乎无法找到在Springs @Transactional上启用快照隔离的简单方法。

我在Hibernate中发现了以下hibernate配置选项,但是我们使用spring-jdbc并且没有hibernate impl。这似乎表明隔离值可能以某种方式手动提供。

<property name=”hibernate.connection.isolation”>4096</property> 

有没有人知道一种让Spring在事务中使用SQL Server快照隔离的方法?

回答

3

4096是用于SNAPSHOT隔离的代码,请参考文章here,你必须在连接对象上设置隔离级别,我不认为你可以用@Transactional实现这一点,你可以使用其他由Spring提供的事务解决方案,主要是' TransactionTemplate的”。

+0

嗨gbagga,有用的提示。我会进一步查看TransactionTemplate并回报。 – Syntax

+1

感谢gbagga,具有正确代码的TransactionTemplate.setIsolationLevel正是我们正在寻找的。对于任何人以类似的意图阅读这个问题,我还没有配置数据库并进行测试;然而,我没有看到为什么它不应该工作,假设你正确配置快照隔离(在数据库和事务)。 – Syntax

+0

欢迎您! –