Как указать уровень изоляции транзакций по умолчанию в Grails

Я не могу понять, как указать уровень изоляции транзакций по умолчанию в приложении 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, как и ожидалось. Однако я не хочу приписывать все службы в своем приложении. Что мне не хватает?

5
задан Andrey.Kozyrev 15 May 2012 в 22:27
поделиться