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)
应该可以解决问题。
我想创建 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)
应该可以解决问题。