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