0

我在更新表时遇到了休眠问题。我必须将任务从一个项目移动到另一个项目,并且我必须更新该项目中的任务 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) 因为我相信它不会针对所选的每一行而递增。

我该如何解决这个问题?

4

0 回答 0