如何在HQL中使用内部联接进行更新?
我在SQL中的查询是这样的
更新u
设置u.name = t.name
来自用户u
t.id = u.id上的内部联接温度t
我尝试使用HQL
@Query(“
更新用户u
设置u.name = ..?..
u.id所在的位置(从Temp中选择ID)
“)
如何在Temp中获取名称以在此查询中进行设置?
谢谢。
答案 0 :(得分:0)
HQL与Hive QL中一样?不,休眠QL。
Hibernate提供一个createSQLQuery方法,可让您直接调用本机SQL语句。基于ORACLE SQL的本机SQL查询方法:
update u
set u.name = (select t.name
from t
where t.id = u.id)
where exists (select 'X'
from t
where t.id = u.id)
,然后按照这些对象准则将Hibernate内容应用于参数和绑定变量。不确定要加入INNER JOIN是可行的方法,但Hibernate在某些方法上可能有所不同。
答案 1 :(得分:0)