Весна - транзакция только для чтения
Просто хотел, чтобы ваши экспертные мнения по декларативному управлению транзакциями для 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*
методы являются чистыми операциями чтения БД. Я не хочу запускать их в любом контексте транзакции. Насколько серьезна вышеуказанная ошибка?
Б. Когда я удаляюget*
Конфигурация, я не вижу ошибок. Более того, все мои простыеget*
Операции выполняются без транзакций. Это путь?
C. Почему кто-то хочет иметь транзакционные методы, гдеreadonly = true
? Есть ли практическое значение этой конфигурации?
Спасибо! Как всегда, ваши отзывы очень ценятся!