在尝试使用JPA中的删除查询删除某些内容时,出现一些错误。
这是在主程序包中调用的删除功能。
public void removeAppoinmentsFromDB(int idToDelete) {
entityManager.getTransaction().begin();
Query query = entityManager.createQuery("DELETE FROM Programari WHERE idProgramari = :idToDelete");
query.executeUpdate();
entityManager.getTransaction().commit();
}
我收到此错误: 线程“主”中的异常java.lang.IllegalStateException:在查询执行期间提供的参数列表中找不到查询参数idToDelete。
在org.eclipse.persistence.internal.jpa.QueryImpl.processParameters(QueryImpl.java:579)
在org.eclipse.persistence.internal.jpa.QueryImpl.executeUpdate(QueryImpl.java:294)
在util.DatabaseUtil.removeAppoinmentsFromDB(DatabaseUtil.java:85)
在main.Main.main(Main.java:82)
答案 0 :(得分:1)
您需要在查询中设置要删除的ID。
public void removeAppoinmentsFromDB(int idToDelete) {
entityManager.getTransaction().begin();
Query query = entityManager.createQuery("DELETE FROM Programari WHERE idProgramari = :idToDelete");
query.setParameter("idToDelete", idToDelete);
query.executeUpdate();
entityManager.getTransaction().commit();
}