2009-05-27 10 views
0

このSQL文をCreateCriteriaに翻訳することは可能ですか?そして、2番目の部分はORDER BY COALESCEとなりますか?NHibernate COALESCE

SELECT obs1.OBSLOPNR, obs1.LOKALLOPNR, obs2.OBSLOPNR, obs2.LOKALLOPNR 
FROM 
    (SELECT * FROM OBS WHERE OBS.LOKALLOPNR = 9) AS obs1 
FULL OUTER JOIN 
    (SELECT * FROM OBS WHERE OBS.LOKALLOPNR = 8) AS obs2 
ON obs1.ARTLOPNR = obs2.ARTLOPNR 
ORDER BY COALESCE(obs1.OBSLOPNR, obs2.OBSLOPNR) 
+0

このような状況では、常にストアプロシージャにしてから、session.getNameQuery()を使用してそのプロシージャを呼び出します。なぜ私たちは物事を簡単にしませんか? –

答えて

0

私がのcreateCriteriaについては知らないが、休止状態/ HQLでのみ、WHERE句であなたの基礎となるデータベースに応じて、COALESCE、IFNULL、またはISNULLをサポートしています。

ダイアレクトに関数を定義することができ、select句でも機能する必要があります。 http://www.hibernate.org/hib_docs/v3/reference/en/html/queryhql.html

0

は何の作り付けのサポートはありません:私はこの

参照をテストしていません。ただし、独自のOrderクラスを作成することはできます。 Here is a good example

sqlの任意の文字列を受け入れるクラスを作成することも、CoalesceOrderクラスを作成して作成することもできます。

関連する問題