构造删除语句:使用 JPQL 语句构造要删除的数据的查询语句,如下所示:
String jpql = "DELETE FROM Entity e WHERE e.id IN :ids";
其中,Entity 为实体类名,id 为要删除的数据的标识符。
创建 Query 对象:使用 EntityManager 对象创建一个 Query 对象,如下所示:
Query query = entityManager.createQuery(jpql);
设置参数:设置 JPQL 中的参数,如下所示:
query.setParameter("ids", idList);
其中,idList 为要删除的数据的标识符列表。
执行删除操作:执行 Query 对象的 executeUpdate() 方法来删除数据,如下所示:
int result = query.executeUpdate();
其中,返回值 result 表示删除操作的结果,即删除的数据的数量。
完整代码示例:
@Transactional
public void batchDelete(List<Long> idList) {
String jpql = "DELETE FROM Entity e WHERE e.id IN :ids";
Query query = entityManager.createQuery(jpql);
query.setParameter("ids", idList);
int result = query.executeUpdate();
System.out.println("删除了 " + result + " 条数据");
注意:在进行批量删除操作时,需要注意设置事务(@Transactional)来确保数据的完整性和一致性。同时,要注意避免一次删除过多的数据,导致数据库负载过高,影响系统的性能。