私は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の最新バージョンを使用しましたが、成功しませんでした。
私は、使用していても、私が達成したいものを行うにはどのような方法が存在する場合(あなたがそれを使用している場合)...
を使用した場合の参加左は-http使用StackOverflowのフォーマットについて読んで考えてみましょう、人々はあなたの投稿を簡単に読むことができるときに助けてくれるでしょう/ –