これでCRUDの基本操作は行えるようになりました。が、ちょっと追記して置かなければいけないのは、基本中の基本である「
Read」の部分でしょう。
先ほどのサンプルでは、すべてのエンティティを取り出すサンプルを挙げておきました。が、実際の処理では、もっと条件を細かく指定してエンティティを検索する必要があるでしょう。
エンティティの取得は、
Queryというクラスを作成しました。これは、インスタンスを作成する際に「
from SampleEntity」といった文を引数に用意していました。この文は、SQLのクエリー文と同じ働きをするもので、「
JPQL」と呼ばれます。ただしSQLとは若干書き方が違います。とりあえず、エンティティの検索の基本的な書き方だけでもここで説明しておきましょう。
●JPQLの検索の基本from エンティティ where 条件式
SQLでもおなじみのwhere節を使えば、基本的な検索はほぼ行うことができます。条件となる式は、等号などの比較演算子(=<>)を使って記述します。
・IDが1のエンティティを取得from SampleEntity where id = 1
・IDが2より大きいエンティティを取得from SampleEntity where id > 2
また、テキストを検索する場合は、あいまい検索の「
like」が使えます。
%記号を使い、ワイルドカードの指定も行えます。
・nameが「K」ではじまるエンティティを取得from SampleEntity where name like 'K%'
複数の条件式を設定したい場合は、「
and」「
or」が使えます。whereの後に、「式 and 式」といった具合に複数の式をand/orでつなげていきます。
・idが10以上20以下のエンティティを取得from SampleEntity where id >= 10 and id <= 20
――とりあえず、こうした基本的な検索の仕方がわかれば、初歩的なデータ検索の処理はだいたいできるようになるでしょう。実際にJPQLのクエリー文を書いて動かしてみると面白いですよ!