EntityTransaction transaction = manager.getTransaction();EntityManagerの「getTransaction」により、EntityTransactionというクラスのインスタンスが取得されます。これが、トランザクションのクラスです。transaction.begin();「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"));エンティティの新規追加は、EntityManagerの「persist」というメソッドを使います。引数にエンティティ・クラスのインスタンス(ここではSampleEntity)を指定して呼び出すことで、そのエンティティをデータベースに保存します。manager.flush();最後にEntityManagerの「flush」を呼び出してフラッシュし、EntityTransactionの「commit」メソッドを呼び出してコミットすると、persistしておいたエンティティが全てデータベースに保存されます。コミットすると同時にトランザクション処理は終了し、データベースは開放されます。
transaction.commit();
※リストが表示されない場合
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 javax.persistence.Query;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext app = new
AnnotationConfigApplicationContext(SampleEntityConfig.class);
EntityManagerFactory factory = app.getBean(EntityManagerFactory.class);
EntityManager manager = factory.createEntityManager();
makeDummyData(manager);
// get list
Query query = manager.createQuery("from SampleEntity");
List list = query.getResultList();
printList(list);
System.out.println("...ok.");
}
// create dummy entity data.
public static void makeDummyData(EntityManager manager) {
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();
}
public static void printList(List list) { 略 }
}
| << 前へ | 次へ >> |