Я работаю над приложением J2EE-сервера, которое развернуто на Tomcat. Я использую источник Spring в качестве инфраструктуры MVC и Hibernate в качестве поставщика ORM. Моя объектная модель имеет много ленивых отношений (зависимые объекты выбираются по запросу). Проект верхнего уровня подобен методам уровня обслуживания, вызывающим несколько методов DAO для выполнения операций с базой данных. Сервисный метод вызывается либо из пользовательского интерфейса Flex, либо как запланированное задание. Когда он вызывается из Flex UI, метод service работает нормально, то есть он выбирает некоторые объекты с использованием методов DAO и даже Lazy loading. Это возможно с помощью OpenSessionInViewFilter, настроенного с сервлетом пользовательского интерфейса.
Но когда тот же метод службы вызывается как запланированное задание, он дает исключение LazyInitializationException. Я не могу настроить OpenSessionInViewFilter, потому что с этим не связан ни один сервлет или запрос пользовательского интерфейса.
Я попытался настроить транзакцию с использованием метода запланированного задания, чтобы метод службы запускал транзакцию и все методы DAO участвовали в этой же транзакции, надеясь, что транзакция останется активной и сеанс гибернации будет доступен. Но это не работает.
Пожалуйста, предложите, если кто-нибудь когда-либо смог заставить работать такую конфигурацию. При необходимости я могу опубликовать конфигурацию Hibernate и записывать сообщения.
Большое спасибо за помощь!
Shreerang