Java 使用join或nasted子查询Hibernate(HQL)进行更新
我在创建用嵌套查询或使用联接更新实体CommitteeMembership的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=?
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”