Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA2.0 JPQL更新_Java_Hibernate_Jpa_Jpql - Fatal编程技术网

Java JPA2.0 JPQL更新

Java JPA2.0 JPQL更新,java,hibernate,jpa,jpql,Java,Hibernate,Jpa,Jpql,我面临着hibernate更新的不同行为,我运行一个简单的JPQL来更新我的任务的工作池,并触发select insert和bulk update查询来更新我的任务的工作池 下面是我将任务移动到工作池的方法: public Boolean changeWorkpool(final TaskWorkpoolChangeRequest taskWorkpoolChangeRequest) { final Query query = entityManager.createQuery("UPDATE

我面临着hibernate更新的不同行为,我运行一个简单的JPQL来更新我的任务的工作池,并触发select insert和bulk update查询来更新我的任务的工作池

下面是我将任务移动到工作池的方法:

public Boolean changeWorkpool(final TaskWorkpoolChangeRequest taskWorkpoolChangeRequest) {
final Query query = entityManager.createQuery("UPDATE Task SET workpoolId = :workpoolId"
    + " WHERE taskId= :taskId");
query.setParameter("workpoolId", taskWorkpoolChangeRequest.getWorkpoolId())
    .setParameter("taskId", taskWorkpoolChangeRequest.getTaskId());
return BooleanUtils.toBoolean(query.executeUpdate());
}

以下是在服务器上执行的查询:

Hibernate: /* select insert */ insert into HT_task select task0_.task_id as task_id 
from task task0_ left outer join task_manager manager0_1_ on task0_.task_id=manager0_1_.task_id 
left outer join task_employee employee0_2_ on task0_.task_id=employee0_2_.task_id 
where task0_.task_id=?

Hibernate: /* bulk update */ update task set workpool_id=? where (task_id) 
IN (select task_id from HT_task)
执行更新查询是hibernate的预期行为还是我遗漏了什么

谁能在这方面给点建议吗


谢谢

我在这里得到了关于java中批量操作的一个很好的解释: