Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 使用join或nasted子查询Hibernate(HQL)进行更新_Java_Hibernate_Hql - Fatal编程技术网

Java 使用join或nasted子查询Hibernate(HQL)进行更新

Java 使用join或nasted子查询Hibernate(HQL)进行更新,java,hibernate,hql,Java,Hibernate,Hql,我在创建用嵌套查询或使用联接更新实体CommitteeMembership的HQL时遇到问题,我首先尝试了此查询: update CommitteeMemberShip cms set cms.isDeleted=1 where cms.committeeCycle.committee.id=:committeeId 但生成的SQL错误如下: update CommitteeMemberShip cross join set isDeleted=1 where committee_id=?

我在创建用嵌套查询或使用联接更新实体CommitteeMembership的HQL时遇到问题,我首先尝试了此查询:

update CommitteeMemberShip cms set cms.isDeleted=1 
where cms.committeeCycle.committee.id=:committeeId
但生成的SQL错误如下:

update CommitteeMemberShip cross join  set isDeleted=1 where committee_id=?
在交叉连接之后,如果没有任何这一点,Hibernate就会抛出SQLGrammarException

之后,我将查询更改为使用子查询:

update CommitteeMemberShip cms set cms.isDeleted=1 
where cms.id in (select cmsIn.id from CommitteeMemberShip cmsIn inner join 
cmsIn.committeeCycle cc inner join cc.committee c where c.id=:committeeId)
现在Hibernate抛出

java.sql.SQLException: You can't specify target table 'CommitteeMemberShip' for 
update in FROM clause
有人知道我如何用HQL编写这个更新查询吗???

试试这个

更新CommitteeMemberShip cms集cms.isDeleted=1 其中cms.id=someselect cmsIn.id从CommitteeMemberShip cmsIn内部联接 cmsIn.committeeCycle cc internal join cc.committee c其中c.id=:committeeId

试试这个
更新表1 r SET r.column=@value,其中r.column插入从r.table2 rd中选择rd.Id,其中rd.column='+@value+'和rd.column='+value+'

我认为这正是第二次尝试子查询时所做的,它抛出:java.sql.SQLException:您不能为从子句中更新指定目标表'committeembership',我不确定,但请尝试此更新committeembership cms join committeembership cms on cms.id=cms.set cms.isDeleted=1,其中cms2.committeeCycle.committee.id=:committeeid您不能在实体名称或别名,它抛出org.hibernate.hql.ast.QuerySyntaxException:应为集合,找到“join”