我在更新表时遇到了hibernate的问题。我必须将任务从一个项目移动到另一个项目,我必须更新该项目中的任务ID。我使用的是:
Long taskCounter = destinationProject.getLastTaskID();
session.createQuery("update Task tp set tp.projectKey.projectID = ? ,tp.projectKey.id = ?, tp.taskListID = ? where tp.taskListID = ? and tp.projectKey.projectID = ?")
.setParameter(0, projectID).setParameter(1,++taskCounter).setParameter(2, newTaskListId).setParameter(3, taskListID).setParameter(4, sourceProjectID).executeUpdate();
当我有多个子任务的任务列表时,我得到一个重复的主键异常。我相信问题是setParamater(1,++ taskCounter),因为我相信它并没有为所选的每一行增加。
我该如何解决这个问题?