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入門」に戻る