2

以下は、より大きな基準クエリからの抜粋です。

...
Expression literal = builder.literal((String) "%" + value + "%");

List<Predicate> globalPredicate = new ArrayList<>();

globalPredicate.add(builder.equal(subject.get(Subject_.email), literal));

predicates.add(builder.or(globalPredicate.toArray(new Predicate[globalPredicate.size()])));  
...

私が明示的に渡してwho arenullを見つけたい場合に存在する条件があります。渡そうとしたところ、条件 API が nullLiteral() を必要としていることがわかりました。適切な場合は条件付きでリテラルを nullLiteral() に置き換えようとしましたが、何も返されませんでした。Subject_.emailnullnull

nullDB 内の指定された属性の値と一致するクエリを作成するベスト プラクティスの方法は何ですか?

4

2 に答える 2

3

私は通常使用しますExpression#isNull()。あなたの例を使用して:

globalPredicate.add(subject.get(Subject_.email).isNull());

これが「ベスト プラクティス」と見なされるかどうかについては、Oracle の Java EE チュートリアル40.3.5.1 The Expression Interface Methodsで説明されています。

于 2013-08-14T20:11:02.390 に答える