Мое веб-приложение (MonoRail, Windsor, ActiveRecord) имеет службу импорта Startable и одно или несколько считывателей импорта Startable. Когда, например, файл отбрасывается в каталог, считыватель анализирует файл, передает данные службе, которая обновляет и / или создает объекты через репозитории. Проблема, с которой я столкнулся, заключается в том, что эти сервисы Startable находятся за пределами области действия запроса (где есть SessionScope от начала до конца), поэтому, когда сервис сталкивается с отложенной коллекцией, SessionScope не существует, чтобы помочь ему сделать свое волшебство. Cue LazyInitializationException:).
Есть идеи, как решить это красиво? Возможно, используя перехватчик для создания и размещения SessionScope вокруг метода, который обрабатывает данные? Оснастить репозитории методами, которые выполняют активную выборку? Я хочу, чтобы службы не знали об ActiveRecord, потому что моя паранойя зависимости говорит, что мы можем захотеть использовать другой механизм персистентности однажды.