我想从数据库中删除实体列表。
List<LetterEntity> letterToDel
- 实体列表。我试图以多种方式删除此列表。
- 我创建一个事务并删除循环中的每个实体
EntityTransaction trx = em.getTransaction();
try {
for (LetterEntity l : lettersToDel) {
trx.begin();
em.remove(l);
em.flush();
trx.commit();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (trx.isActive())
trx.rollback();
}
- 我为循环中的每个删除创建新事务
try {
for (LetterEntity l : lettersToDel) {
EntityTransaction trx = em.getTransaction();
trx.begin();
em.remove(l);
em.flush();
trx.commit();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (trx.isActive())
trx.rollback();
}
在案例 1,2 中没有例外,但实体没有删除。
- 我试图用查询删除实体
try {
for (LetterEntity l : lettersToDel) {
em.createQuery("delete from LetterEntity l where l = :letter")
.setParameter("letter", l)
.executeUpdate();
}
} catch (Exception e) {
e.printStackTrace();
}
情况 3 有一个例外:
javax.persistence.TransactionRequiredException: Executing an update/delete query
我做错了什么?