libro
初心者のためのJava Persistence API入門

JPQLとQueryアノテーション (1/5)

作成:2017-10-28 09:42
更新:2017-10-28 09:42

■JPQLの基本

JPAでエンティティの取得を行うとき、重要になるのが「JPQL」です。

JPQLは、SQLのクエリー文に近い簡易言語です。が、微妙に違うので、最初に基本的な書き方を覚えてしまったほうがいいでしょう。JPQLの基本は、こんな感じになっています。
select ○○ from エンティティ ○○

○○はエイリアスです。JPQLでは、selectの後にエイリアスを指定し、このエイリアスを使って文を作ります。エイリアスは何でも構いません。aでもbでもxでもyでも、abcdefgでも大丈夫です(エイリアスですから、まあ普通はもっと短い名前にしますが)。

例えば、MyDataEntityのエンティティを取得するなら、
select aaa from MyDataEntity aaa

こんな具合に記述すればいいわけですね。ここではaaaというエイリアスを指定しましたが、もちろん別の名前でもかまいません。


■where句の利用

取得するエンティティを絞り込む場合は、SQLと同様にwhere句を使います。これは、こんな感じに記述することになるでしょう。
select ○○ from エンティティ ○○ where ……式……

となります。where以降で、特定の項目を指定して式を記述する場合には、エイリアス内の項目を指定する感じになります。例えば、「MyDataEntityのidが1より大きいものを取得」ならば、
select aaa from MyDataEntity aaa where aaa.id > 1

こんな感じになるでしょう。whereの式を見ると、aaa.idというようにしてチェックする対象の項目を指定しています。まるで、aaaMyDataEntityインスタンスが代入されているようですね? こんな具合にしてエンティティ内の各項目を指定し利用するのです。


■order by句

レコードの並べ替えで用いられる「order by」もJPQLでそのまま利用することができます。これもwhereと同様、エイリアスを使って並べ替えのための項目を指定します。
select aaa from MyDataEntity aaa order by aaa.id desc

例えば、このようにすれば、idを逆順に並べ替えることができます。昇順はasc、降順はdescをつけますが、昇順の場合は省略してもかまいません。……まぁ、このあたりはSQLとほぼ同じですね。


※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。


※関連コンテンツ

「初心者のためのJava Persistence API入門」に戻る