Просто хотелось, чтобы ваши экспертные мнения касались декларативного управления транзакциями для Spring. Вот моя настройка:
- Уровень DAO - это простой старый JDBC с использованием Spring JdbcTemplate (без спящего режима и т.д.)
- Уровень обслуживания - POJO с декларативными транзакциями следующим образом:
save*, readonly = false, rollback for Throwable
Все работает отлично с настройкой выше. Однако, когда я говорю get*, readonly = true
, я вижу ошибки в моем файле журнала, говоря Database connection cannot be marked as readonly
. Это происходит для всех методов get * в уровне обслуживания.
Теперь мои вопросы:
а. Должен ли я устанавливать get*
как только для чтения? Все мои методы get*
- это чистые операции чтения DB. Я не хочу запускать их в любом контексте транзакций. Насколько серьезной является вышеуказанная ошибка?
В. Когда я удаляю конфигурацию get*
, я не вижу ошибок. Более того, все мои простые операции get*
выполняются без транзакций. Это путь?
С. Почему кто-то хочет иметь транзакционные методы, где readonly = true
? Существует ли какое-либо практическое значение этой конфигурации?
Спасибо! Как всегда, ваши отзывы очень ценятся!