java.lang.IllegalArgumentException: Update/delete 无法输入查询

java.lang.IllegalArgumentException: Update/delete queries cannot be typed

我想创建 SQL 查询以删除行。我试过这个:

public void deleteByIds(List<Integer> ids)
{
        String hql = "delete from " + OnboardingTasks.class.getName() + " e WHERE e.id IN :ids";
        TypedQuery<OnboardingTasks> query = entityManager.createQuery(hql, OnboardingTasks.class).setParameter("ids", ids);
        query.executeUpdate();
}

但我遇到异常:ption [Request processing failed; nested exception is java.lang.IllegalArgumentException: Update/delete queries cannot be typed] with root cause java.lang.IllegalArgumentException: Update/delete queries cannot be typed 您知道发送要删除的 ID 列表的正确方法是什么吗?

A​​ TypedQuery<X> 是一个生成 X 类型的 return 对象或其列表的查询。 更新和删除查询不会 return 任何东西,因此您必须为它们使用不同类型的查询。

使用 EntityManager.createQuery(String) 而不是 EntityManager.createQuery(String, Class) 应该可以解决问题。