MongoDBを利用する (3/6)
作成:2015-05-09 09:15
更新:2015-05-09 09:15
更新:2015-05-09 09:15
■リポジトリインターフェイスを用意する
エンティティクラスを作成したら、次に行うのは「リポジトリインターフェイス」の作成です。先にhsqldbを使ったときには、「JpaRepository」というインターフェイスが用意されていました。が、これは一般的なSQLデータベースを想定したものであり、MongoDBでは利用できません。
代りに、「MongoRepository」というインターフェイスが用意されています。これはorg.springframework.data.mongodb.repositoryというパッケージに用意されているものです。org.springframework.data.mongodbは、pom.xmlに追加したMongoDB用のライブラリとして追加されているクラス群です。
下に、簡単なサンプルを挙げておきましょう。ここでは、MyMongoRepositoryというインターフェイスを作成しています。これは以下のような形でインターフェイスを定義しています。
メソッドには、findByTitleというものを用意してありますが、これはtitleフィールドでエンティティを検索するためのものです。まぁ、検索メソッドのサンプルとして用意しておいた、と考えて下さい。見ればわかるように、これは「findByフィールド」といった名前になっています。
先に、JpaRepositoryを利用した際、指定したフィールドからエンティティを検索するメソッドの実装が自動生成されましたが、あれとまったく同じ機能がMongoRepositoryにも備わっているのです。つまり、「findBy○○」といったメソッドをインターフェイスに用意するだけで、コードを書くことなく検索メソッドを用意することができます。
代りに、「MongoRepository」というインターフェイスが用意されています。これはorg.springframework.data.mongodb.repositoryというパッケージに用意されているものです。org.springframework.data.mongodbは、pom.xmlに追加したMongoDB用のライブラリとして追加されているクラス群です。
下に、簡単なサンプルを挙げておきましょう。ここでは、MyMongoRepositoryというインターフェイスを作成しています。これは以下のような形でインターフェイスを定義しています。
public interface MyMongoRepositoryMongoRepositoryは総称型に対応しています。これは、<エンティティクラス, プライマリキークラス > という形で指定をします。ここではMongoDataエンティティクラスを使いますので、<MongoData, String>と指定してあります。
extends MongoRepository<MongoData, String>
メソッドには、findByTitleというものを用意してありますが、これはtitleフィールドでエンティティを検索するためのものです。まぁ、検索メソッドのサンプルとして用意しておいた、と考えて下さい。見ればわかるように、これは「findByフィールド」といった名前になっています。
先に、JpaRepositoryを利用した際、指定したフィールドからエンティティを検索するメソッドの実装が自動生成されましたが、あれとまったく同じ機能がMongoRepositoryにも備わっているのです。つまり、「findBy○○」といったメソッドをインターフェイスに用意するだけで、コードを書くことなく検索メソッドを用意することができます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package com.tuyano.libro.bootapp; import java.util.List; import org.springframework.data.mongodb.repository.MongoRepository; public interface MyMongoRepository extends MongoRepository<MongoData, String>{ public List<MongoData> findByTitle(String title); }
※関連コンテンツ
「初心者のためのSpring Bootプログラミング入門」に戻る