Я работаю с веб-приложением Grails и получаю так много странных вещей при использовании службы Grails. Поэтому я хочу задать несколько вопросов по этому поводу, чтобы больше понять о сервисах Grails. Это будет очень полезно для меня (и, возможно, для других ^_^). Заранее спасибо.
Если сервис настроен со статической транзакционностью = true, будет ли он промывать все изменения данных в БД после вызова любого метода с объектом, который грязный и заблокирован в сессии Hibernate?
Могу ли я использовать аннотацию @Transactional
на уровне класса вместо static transactional = true
? И можно ли поставить @Transactional(readOnly = true)
на некоторые методы, которые я хочу, чтобы они просто читали (запрашивали, находили) данные из БД?
Как насчет наследования транзакций? Я имею в виду, что если родительский сервис настроен static transactional = true
, а дочерний сервис имеет собственную аннотацию @Transactional
(на классе) и некоторые @Transactional(readOnly = true)
(на некоторых методах), что произойдет, если я вызову метод родительского сервиса из дочернего?
Работает ли транзакционность с абстрактным сервисом? Потому что, как я знаю, с абстрактным сервисом мы не можем инициализировать его bean, и, возможно, при запуске приложения есть некоторые различия в контексте Grails.