JpaRepositoryを利用する (3/8)
作成:2015-08-08 10:56
更新:2015-08-08 11:10
更新:2015-08-08 11:10
■アプリケーションでJpaReposioryを利用する
では、JpaRepositoryを利用してみることにしましょう。
com.tuyano.libro.dbパッケージにあるAppクラスを、下のリスト欄のように書き換えて下さい。そして実行してみましょう。ダミーとして作成してある全エンティティが表示されます。
ここでは、まずEntityManagerからSampleEntityRepositoryインスタンスを取得しています。
ところで、ここでのコードを見て、ちょっと不思議に思った人もあるのではないでしょうか。SampleEntityRepositoryは、インターフェイスです。クラスではありません。それなのに、当たり前のようにBeanが取得できています。
JpaRepositoryは、インターフェイスを用意するだけで、自動的にクラスを作りBeanを生成するのです。必要なのはインターフェイスだけなのです。
com.tuyano.libro.dbパッケージにあるAppクラスを、下のリスト欄のように書き換えて下さい。そして実行してみましょう。ダミーとして作成してある全エンティティが表示されます。
ここでは、まずEntityManagerからSampleEntityRepositoryインスタンスを取得しています。
SampleEntityRepository repository =これで、Beanが取得されます。dbbean.xmlにはBeanの定義は用意されていませんが、このようにちゃんとBeanが取り出せます。これも、@Repositoryのおかげです。
app.getBean(SampleEntityRepository.class);
List list = repository.findAll();そして、「findAll」メソッドを呼び出すことで、エンティティのリストを取り出しています。「こんなメソッド、一体どこに?」と思った人。それは、SampleEntityRepositoryで継承しているJpaRepositoryに用意されていたのです。
■クラスはどこに?
ところで、ここでのコードを見て、ちょっと不思議に思った人もあるのではないでしょうか。SampleEntityRepositoryは、インターフェイスです。クラスではありません。それなのに、当たり前のようにBeanが取得できています。
JpaRepositoryは、インターフェイスを用意するだけで、自動的にクラスを作りBeanを生成するのです。必要なのはインターフェイスだけなのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
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.support.ClassPathXmlApplicationContext; public class App { private static EntityManager manager; public static void main(String[] args) { ApplicationContext app = new ClassPathXmlApplicationContext("dbbean.xml"); EntityManagerFactory factory = app.getBean(EntityManagerFactory.class); manager = factory.createEntityManager(); SampleEntityRepository repository = app.getBean(SampleEntityRepository.class); // make dummy makeDummyData(); // get list List list = repository.findAll(); printList(list); 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")); manager.persist(new SampleEntity("taro", "taro@yamada")); manager.persist(new SampleEntity("sachiko", "sachico@happy")); manager.flush(); transaction.commit(); } // print all entity. public static void printList(List list) { for (Object item : list) { System.out.println(item); } } }
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る