EntityTransaction transaction = manager.getTransaction();
EntityManagerの「getTransaction」により、EntityTransactionというクラスのインスタンスが取得されます。これが、トランザクションのクラスです。transaction.begin();
「begin」メソッドを実行してトランザクション処理を開始します。manager.persist(new SampleEntity("tuyano", "syoda@tuyano.com"));エンティティの新規追加は、EntityManagerの「persist」というメソッドを使います。引数にエンティティ・クラスのインスタンス(ここではSampleEntity)を指定して呼び出すことで、そのエンティティをデータベースに保存します。
manager.persist(new SampleEntity("hanako", "hanako@flower"));
manager.persist(new SampleEntity("taro", "taro@yamada"));
manager.persist(new SampleEntity("sachiko", "sachico@happy"));
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) { 略 } }
<< 前へ | 次へ >> |