在JPA中删除查询会导致错误

时间:2018-11-05 21:44:50

标签: java mysql jpa

在尝试使用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)

1 个答案:

答案 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();        
}