私の Web アプリケーション (MonoRail、Windsor、ActiveRecord) には、開始可能なインポート サービスと 1 つ以上の開始可能なインポート リーダーがあります。たとえば、ファイルがディレクトリにドロップされると、リーダーはファイルを解析し、データをサービスに渡します。サービスは、リポジトリを介してオブジェクトを更新および/または作成します。私が抱えている問題は、これらの Startable サービスがリクエスト スコープ (Begin から End までの SessionScope がある場所) の外に存在することです。そのため、サービスが遅延コレクションに遭遇したときに、その魔法を実行するのに役立つ SessionScope が周りにありません。キュー LazyInitializationException :)。
これをうまく解決する方法はありますか?おそらくインターセプターを使用して、データを処理するメソッドの周りに SessionScope を作成および破棄しますか? 熱心なフェッチを実行するメソッドをリポジトリに装備しますか? サービスに ActiveRecord を認識させないようにしたいのは、私の依存パラノイアが、いつか別の永続化メカニズムを使用したいかもしれないと言っているからです。