ODataフィルタリングを行うためのパラメータ化されたHQLクエリを作成するクエリビルダーがあります。 NULL
いるプロパティに対してクエリを構築する場合、HQLのwhere
claluseは次のように?
は値がNULL
あるだパラメータで置き換えられます...パラメータ化されたHQL 'がnull'クエリは '= null'になります
... where $entity.Property is ?
を...見えます。ただし、上記のクエリでsession.CreateQuery(hql)
を呼び出すと、実行されたSQLはis null
クエリではなく、クエリになり、@p1
がNULLになるようになります。これは明らかに私がしたいことをしません。
HQLを明示的に$entity.Propery is null
にすると、すべて正常に動作しますが、何かが不足している、または何か愚かなことをしているように感じます。
ここでは何が起こっていますか?
この場合、NHibernateは、 'x IS? 'でパラメータ化されたHQLクエリを渡すと本当に例外がスローされるはずです。 – GoatInTheMachine