値を比較するCriteriaBuilderのメソッド
8.4 値を比較するCriteriaBuilderのメソッド
Criteria APIをうまく活用するには、CriteriaQueryでエンティティの操作を行うためのメソッド類をいかにしてマスターするか、が重要なことがわかります。これらは1つのクラスでなく、いくつものクラスの機能を組み合わせるため、余計に難しそうに思えてしまいます。まずは必要なものを整理していきましょう。
8.4.1 equal
第1引数のPathで指定されたエンティティのプロパティが第2引数と等しいかどうかをチェックします。
8.4.2 notEqual
Equalと反対の働きをします。2つの引数の示すものが等しくないことを調べます。
8.4.3 gt, greaterThan
第1引数で指定した要素が、第2引数の値より大きいことをチェックします。基本的には、数値関係のプロパティで使います。2つありますが、どちらも働きは同じです。
8.4.4 ge, greaterThanOrEqualTo
第1引数で指定した要素が、第2引数の値と等しいか大きいことをチェックします。equalとgreaterThanを組み合わせたものと考えるとよいでしょう。やはり2つメソッドがありますが、働きはどちらも同じです。
8.4.5 lt, lessThan
第1引数で指定した要素が、第2引数の値より小さいことをチェックします。メソッドは2つあり、どちらも働きは同じです。
8.4.6 le, lessThanOrEqualTo
第1引数で指定した要素が、第2引数の値と等しいか小さいことをチェックします。equalとlessThanを組み合わせたものです。2つのメソッドは、どちらも同じです。
8.4.7 between
珍しく3つの引数を持ったメソッドです。第1引数で指定した要素が、第2引数と第3引数の間に含まれていることをチェックします。
8.4.8 isNull
引数で指定した要素がnullであることをチェックします。
8.4.9 isNotNull
引数で指定した要素がnullでないことをチェックします。
8.4.10 isEmpty
引数で指定した要素が空っぽ(空文字を含む)であることをチェックします。
8.4.11 isNotEmpty
8.3で使われたメソッドですね。第1引数に指定した要素の値が、第2引数の文字列を含んでいるかどうかをチェックします。SQLのLIKE演算子と同じく、値の前後に「%」を付けると、あいまい検索として文字列を比較できます。
8.4.12 like
8.3で使われたメソッドですね。第1引数に指定した要素の値が、第2引数の文字列を含んでいるかどうかをチェックします。SQLのLIKE演算子と同じく、値の前後に「%」を付けると、あいまい検索として文字列を比較できます。
8.4.13 and
2つ以上の式を示すオブジェクトがいずれも成立することをチェックします。引数には、ここに挙げたメソッドを使って作成された式が用意されます。
8.4.14 or
2つ以上の式を示すオブジェクトがいずれかが成立することをチェックします。and同様、ここに挙げたメソッドを使って作成された式を指定します。
8.4.15 not
引数に指定された式が成立しないことをチェックします。
この他にも多数のメソッドがCriteriaBuilderには用意されていますが、とりあえずここに挙げたものが一通りわかれば、基本的な式は作成できるようになるでしょう。これらのメソッドで作られた式をwhereの引数に指定することで、基本的な検索のためのCriteriaQueryはだいたい作れるようになるはずです。