Я не могу понять, как указать уровень изоляции транзакций по умолчанию в приложении Grails. Пожалуйста, помогите и укажите, где моя ошибка. Ниже приведены подробности.
Grails: 1.3.7
База данных: Sql Server 2008.
DataSource.groovy:
dataSource {
...
driverClassName = "net.sourceforge.jtds.jdbc.Driver"
dialect = org.hibernate.dialect.SQLServerDialect
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_UNCOMMITTED
}
hibernate {
...
connection.isolation = java.sql.Connection.TRANSACTION_READ_UNCOMMITTED
}
Затем я перемещаюсь по приложению и одновременно выполняю следующий запрос:
SELECT session_id, host_name, program_name, login_name, status, transaction_isolation_level
FROM sys.dm_exec_sessions
WHERE host_name IS NOT NULL AND login_name = 'cm'
ORDER BY host_name, program_name
который возвращает :
session_id host_name program_name login_name status transaction_isolation_level
61 ANDREYK-WS jTDS cm running 2
2 означает READ_COMMITTED. Я ожидаю увидеть 1, то есть READ_UNCOMMITTED.
Если я явно укажу: @Transactional(isolation=Isolation.READ_UNCOMMITTED)
Приведенный выше запрос возвращает 1, как и ожидалось. Однако я не хочу приписывать все службы в своем приложении. Что мне не хватает?