2011-07-08 15 views
5

私はnhibernate hqlを使用して並べ替えに大きな問題に遭遇しました。私は、別のテーブルUSERPROFILEにリンクするプロパティUSER(USERクラスに対応)を持つテーブルLICENSEを持っています。 USERPROFILEテーブルのプロパティUserNameはnvarchar(USERクラスの文字列)です。 LICENSEのこのUSERプロパティは、LICENSEが割り当てられているかどうかに応じてnullになることがあります。CASEを使用してNHibernateの注文

USERプロパティでソートされたライセンスのフィルタリングされたリストを取得する必要があります。ヌルのユーザーがいるすべてのライセンスをリストの一番下に、他のすべてのライセンスをUSERのUSERNAMEプロパティでアルファベット順にソートするとします。私はこれのために次のクエリを使用しました:

from License license where <various filters> order by CASE WHEN User IS NULL THEN '0' ELSE User.UserName END" 

私はこのクエリから抜け出すのは、割り当てられたライセンスだけのリストです。 nullのUSERを持つすべてのライセンスは返されません。誰か助けてもらえますか?

また、私は「ユーザーがNULLでない場合は0を返します」というユーザー名を使用した場合、非ヌルユーザーの結果のみが表示されますが、「ユーザーがNULL THEN '0' ELSE User.UserProfileId END "または単純に" User by order "はすべてのユーザーが表示されますが、UserProfileIdが外部キーであるためuserNameではなくUserProfileIdに基づいてソート順が決定されます。私はnhibernateの最新バージョンを使用しましたが、成功しませんでした。

私は、使用していても、私が達成したいものを行うにはどのような方法が存在する場合(あなたがそれを使用している場合)...

+0

を使用した場合の参加左は-http使用StackOverflowのフォーマットについて読んで考えてみましょう、人々はあなたの投稿を簡単に読むことができるときに助けてくれるでしょう/ –

答えて

0

はNHibernateは、最新バージョンとfluentnhibernateの最後のバージョンをダウンロードしてみて疑問に思って次のクエリ: - それはあなたの投稿はたくさん読みやすくなり//stackoverflow.com/editing-help: from License license where order by User.UserName END のNHibernateの新バージョンがやっているため

+0

私はnhの新しいバージョンを試しました私は(そして私は流暢を使用しないでください)ibernate。それでも問題は変わりません。 – user835199

関連する問題