Некоторые вопросы о сервисе Grails

Я работаю с веб-приложением Grails и получаю так много странных вещей при использовании службы Grails. Поэтому я хочу задать несколько вопросов по этому поводу, чтобы больше понять о сервисах Grails. Это будет очень полезно для меня (и, возможно, для других ^_^). Заранее спасибо.

  1. Если сервис настроен со статической транзакционностью = true, будет ли он промывать все изменения данных в БД после вызова любого метода с объектом, который грязный и заблокирован в сессии Hibernate?

  2. Могу ли я использовать аннотацию @Transactional на уровне класса вместо static transactional = true? И можно ли поставить @Transactional(readOnly = true) на некоторые методы, которые я хочу, чтобы они просто читали (запрашивали, находили) данные из БД?

  3. Как насчет наследования транзакций? Я имею в виду, что если родительский сервис настроен static transactional = true, а дочерний сервис имеет собственную аннотацию @Transactional (на классе) и некоторые @Transactional(readOnly = true) (на некоторых методах), что произойдет, если я вызову метод родительского сервиса из дочернего?

  4. Работает ли транзакционность с абстрактным сервисом? Потому что, как я знаю, с абстрактным сервисом мы не можем инициализировать его bean, и, возможно, при запуске приложения есть некоторые различия в контексте Grails.

8
задан Đinh Hồng Châu 2 December 2011 в 03:41
поделиться