前回、データベースアクセスの基本についてざっと説明をしました。このとき、データの検索については「
JPQL」と呼ばれるクエリー文を使って行う、ということを説明たのを覚えているでしょうか。
この説明を読んで、「え゛~~~」と思わず唸った人もきっと大勢いたことでしょう。SQLなんてものを見たくないがためにフレームワークを使おうと思ったのに、まさかのSQLモドキが待ち構えていたとは……。
が、しかし安心して下さい。Spring Frameworkには、もっとスマートにデータ検索を行うための仕組みがちゃんと用意されています。それは「
JpaRepository」と呼ばれるものです。
JpaRepositoryは、インターフェイスです。インターフェイスに、あらかじめ検索メソッドを定義しておくことで、メソッドを呼び出すだけでスマートにデータ検索が行えるようになるのです。「でも、そのメソッドの中では、JPQLを使って検索処理を書くんでしょ……」と思った人、まぁちょっとだけ我慢して下さい。決して損にはなりませんから。
まずは、
JpsRepositoryのインターフェイスを作ってしまいましょう。
com.tuyano.libro.dbパッケージ内に、「
SampleEntityRepository.java」というファイル名でソースコードファイルを作成して下さい。そして、下のリスト欄のようにインターフェイスを記述しましょう。
JpaRepositoryインターフェイスは、
org.springframework.data.jpa.repositoryパッケージの「
JpaRepository」というインターフェイスを継承して作成します。このインターフェイスは、総称型に対応しています。コードを見ると、こんな形で書かれていることがわかるでしょう。
public interface 名前 extends JpaRepository <エンティティ , IDタイプ>
<>内には、エンティティのクラス名と、IDフィールドのタイプが指定されます。注意したいのは、「基本型の場合は、ラッパークラスを指定する」という点です。サンプルの
SampleEntityクラスでは
long型をIDに指定していますので、ここでは
<SampleEntity, Long>としてあるわけですね。
もう1つ、注意しておきたいのは、
アノテーションです。クラスの宣言前に、「
@Repository」というアノテーションがつけられていますね。これにより、このインターフェイスが
JpaRepositoryであることを示します。これは必ず付けておくようにしましょう。