2009-07-02 4 views
1

DetachedCriteriaオブジェクト(またはNHibernateオブジェクトからのNHibernateクエリのクエリーテキスト(つまりプレーンSQL))を取得する方法はありますか?それが送信される前に、正しい方向を指し示したいだけです。私のサーバー?もしそうなら、私はそれが実行されるのを防ぐことができますか?NHibernateのクエリインターセプト

+1

私はこれが可能ではないと思います。なぜこれが必要ですか?あなたが達成しようとしていることを教えてください –

+0

detachedCriteria.GetExecutableCriteria() の結果をDataTableに返したいと思います。返された結果を並べ替えることができる必要があり、並べ替えるには各オブジェクトの種類を知る必要があります。動的に型を決定するのはn^2操作です(GetExecutableCriteria()はobject [] []を返します)、SQLテキストを使用するとこの問題は解消されます。 – Michael

+0

あなたが並べ替える場合は、単にAddOrder()を使用しないのはなぜですか? –

答えて

1

これを行う簡単な方法があるかどうかわかりません。 sqlを表示してから実行を中止するために使用できるリスナーが存在する可能性があります。私はこの目的のために使ったことがありません。

クエリをデバッグし、データベースにヒットしたくない場合は、in-memory databaseを使用していくつかのテストを作成します。私の意見では、これははるかに良い戦略です。

ログファイルをテールしたり、NHProfを使用して生成されたクエリを確認できます。