1. ホーム
  2. hibernate

[解決済み] Hibernate関数Restrictions.allEq(Map<String、Object>)は、どのようにNULL値を処理しますか?

2022-02-16 10:08:26

質問

Hibernateの機能である Restrictions.allEq(Map<String, Object> ...) は、入力Map内のNULL値を扱います(もし複数の Restrictions.eq(String, Object) または Restrictions.eqOrIsNull(String, Object) )またはwhatelse)。
Googleで検索しても、Hibernateのドキュメントからは具体的なものが見つからず、あるソースによると、以下のように書かれているだけでした。 Restrictions.allEq(...) と同等です。 multiple Restrictions.eq(String, Object) (参照 ここで ).
それが正しい答えかどうかわからないので、ここで質問させていただきました。 皆様、よろしくお願いいたします。

どのように解決するのですか?

Hibernateのソース(4.3.6.Final)をダウンロードし、少し調べてみて、ようやく答えが見つかりました。 Restrictions.allEq(Map<String, Object>) の束として翻訳されます。 Restrictions.eq(String, Object) となり、結果的に null の値が文字列としてリマップされます。 "null" (これは、特定のアプリケーションによって正しい翻訳である場合もあればそうでない場合もあります)。
私の場合、複数の Restrictions.eqOrIsNull(String, Object) を正しく管理するために、入力の Map<String, Object> .
この質問が誰かの役に立つといいのですが。