CRUDの基本をマスターする (4/5)
作成:2015-08-01 08:43
更新:2015-08-01 08:43
更新:2015-08-01 08:43
■エンティティの削除
残るは、エンティティの削除ですね。
削除も、基本的にはエンティティの更新と同じです。IDを指定してエンティティのインスタンスを取得し、削除してからトランザクションをコミットする、といったやり方をします。
下のリスト欄に、簡単なサンプルを挙げておきました。実行すると、ID=1, 3のエンティティを削除し、残る2つだけを表示します。では、これも流れを整理しておきましょう。
まず、EntityManagerの「find」を使い、指定したIDのエンティティ(ここではSampleEntity)を取り出します。
削除も、基本的にはエンティティの更新と同じです。IDを指定してエンティティのインスタンスを取得し、削除してからトランザクションをコミットする、といったやり方をします。
下のリスト欄に、簡単なサンプルを挙げておきました。実行すると、ID=1, 3のエンティティを削除し、残る2つだけを表示します。では、これも流れを整理しておきましょう。
SampleEntity entity = manager.find(SampleEntity.class, id);
まず、EntityManagerの「find」を使い、指定したIDのエンティティ(ここではSampleEntity)を取り出します。
EntityTransaction transaction = manager.getTransaction();続いて、EntityTransactionインスタンスを取得し、トランザクション処理を開始します。
transaction.begin();
manager.remove(entity);
エンティティを削除します。これはEntityManagerの「remove」メソッドを使います。引数に、データベースから取り出したエンティティのインスタンスを指定すると、それをデータベースから取り除きます。manager.flush();最後にEntityManagerをflushし、EntityTransactionをcommitすれば、データベースの更新が完了し、データが削除されます。――いかがですか。エンティティの更新がわかれば、削除もほぼ同じ感覚で行えるでしょう?
transaction.commit();
(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 javax.persistence.Query; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class App { private static EntityManager manager; public static void main(String[] args) { ApplicationContext app = new AnnotationConfigApplicationContext(SampleEntityConfig.class); EntityManagerFactory factory = app.getBean(EntityManagerFactory.class); manager = factory.createEntityManager(); // make dummy makeDummyData(); // delete entity deleteEntity(1L); deleteEntity(3L); // get list Query query = manager.createQuery("from SampleEntity"); List list = query.getResultList(); printList(list); System.out.println("...ok."); } public static void makeDummyData() { 略 } public static void printList(List list) { 略 } // delete entity public static void deleteEntity(long id) { SampleEntity entity = manager.find(SampleEntity.class, id); EntityTransaction transaction = manager.getTransaction(); transaction.begin(); manager.remove(entity); manager.flush(); transaction.commit(); } }
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る