SampleEntity entity = manager.find(SampleEntity.class, id);EntityTransaction transaction = manager.getTransaction();続いて、EntityTransactionインスタンスを取得し、トランザクション処理を開始します。
transaction.begin();
manager.remove(entity);エンティティを削除します。これはEntityManagerの「remove」メソッドを使います。引数に、データベースから取り出したエンティティのインスタンスを指定すると、それをデータベースから取り除きます。manager.flush();最後にEntityManagerをflushし、EntityTransactionをcommitすれば、データベースの更新が完了し、データが削除されます。――いかがですか。エンティティの更新がわかれば、削除もほぼ同じ感覚で行えるでしょう?
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 {
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();
}
}
| << 前へ | 次へ >> |