JpaRepositoryを利用する (7/8)
作成:2015-08-08 11:05
更新:2015-08-08 11:13
更新:2015-08-08 11:13
■リポジトリのメソッドを利用する
では、App.javaを書き換えて、これらを使ってみましょう(下のリスト参照)。すると、簡単に必要なエンティティが検索できることがわかるでしょう。検索部分を見ると、こんな感じに呼び出していますね。
・nameでの検索
検索結果:
・mailでの検索
検索結果:
findByNameLike("%ko")では、nameの値が「ko」で終わるエンティティが検索されています。また、findByMailEndingWith(".com")では、mailの値が「.com」で終わるエンティティが検索されているのがわかります。ちゃんと必要な物だけが検索できていますね。
ここでよく思い出して欲しいのが、「SampleEntityRepositoryには、メソッドの宣言を書いただけだ」という点です。つまり、これらのメソッドで実際に実行する処理は、一切書いていないのです。ただメソッドの宣言を書いただけで、ちゃんとその通りに動くメソッドが自動生成されているのです。
これが、JpaRepositoryの威力です。JpaRepositoryでは、あらかじめ決まった型式でメソッド名を書いておくと、その名前を元にして実際に動くメソッドが自動生成されるのです。
・nameでの検索
List list1 = repository.findByNameLike("%ko");
検索結果:
SampleEntity [id=2, name=hanako, mail=hanako@flower.uk]
SampleEntity [id=4, name=sachiko, mail=sachico@happy.com]
・mailでの検索
List list2 = repository.findByMailEndingWith(".com");
検索結果:
SampleEntity [id=1, name=tuyano, mail=syoda@tuyano.com]
SampleEntity [id=4, name=sachiko, mail=sachico@happy.com]
findByNameLike("%ko")では、nameの値が「ko」で終わるエンティティが検索されています。また、findByMailEndingWith(".com")では、mailの値が「.com」で終わるエンティティが検索されているのがわかります。ちゃんと必要な物だけが検索できていますね。
ここでよく思い出して欲しいのが、「SampleEntityRepositoryには、メソッドの宣言を書いただけだ」という点です。つまり、これらのメソッドで実際に実行する処理は、一切書いていないのです。ただメソッドの宣言を書いただけで、ちゃんとその通りに動くメソッドが自動生成されているのです。
これが、JpaRepositoryの威力です。JpaRepositoryでは、あらかじめ決まった型式でメソッド名を書いておくと、その名前を元にして実際に動くメソッドが自動生成されるのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
// ******************** // ※App.java // ******************** package com.tuyano.libro.db; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { private static EntityManager manager; public static void main(String[] args) { //ApplicationContext app = new AnnotationConfigApplicationContext(SampleEntityConfig.class); ApplicationContext app = new ClassPathXmlApplicationContext("dbbean.xml"); EntityManagerFactory factory = app.getBean(EntityManagerFactory.class); manager = factory.createEntityManager(); makeDummyData(); // get repository SampleEntityRepository repository = app.getBean(SampleEntityRepository.class); // get list List list1 = repository.findByNameLike("%ko"); System.out.println("*Find By Name*"); printList(list1); List list2 = repository.findByMailEndingWith(".com"); System.out.println("*Find By Mail*"); printList(list2); System.out.println("...ok."); } // create dummy entity data. public static void makeDummyData() { EntityTransaction transaction = manager.getTransaction(); transaction.begin(); manager.persist(new SampleEntity("tuyano", "syoda@tuyano.com")); manager.persist(new SampleEntity("hanako", "hanako@flower.uk")); manager.persist(new SampleEntity("taro", "taro@yamada.jp")); manager.persist(new SampleEntity("sachiko", "sachico@happy.com")); manager.flush(); transaction.commit(); } // print all entity. public static void printList(List list) { 略 } }
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る