Как настроить транзакции для веб-приложений и пакетных заданий с помощью Spring и Hibernate

У меня есть приложение, использующее Spring 2.5 и Hibernate 3.

Есть веб-приложение с уровнем представления, уровнем обслуживания и уровнем DAO, а также некоторые задания Quartz, использующие одни и те же сервисы и слои DAO.

Транзакции инициализируются на разных уровнях с помощью аннотаций @Transactional, например:

alt text

Это привело меня к описанной здесь проблеме: Управление настройками внутренней транзакции из внешней транзакции с помощью Spring 2.5

Я немного прочитал о том, как настроить транзакции для соединения Spring и Hibernate. Похоже, что рекомендуемый подход - инициализировать транзакции на уровне сервиса.

Что мне не нравится, так это то, что большинство транзакций существуют только потому, что они необходимы для правильной работы спящего режима.

И когда мне действительно нужна транзакция для задания, вызывающего несколько методов службы, кажется, что у меня нет возможность продолжить инициализацию транзакций из заданий. Так что перенос аннотаций @Transactional из DAO в службу не делает 3 Может ли кто-нибудь объяснить, что происходит?

Я обнаружил странное поведение в Python относительно отрицательных чисел:

>>> -5 % 4
3

Кто-нибудь может объяснить, что происходит?

64
задан Aran-Fey 28 October 2018 в 18:08
поделиться