我试图更新另一个表的某些列。
我想使用JPA(JPQL)来创建Query
我尝试了这种语法:
UPDATE
Table t1 JOIN Table t2
ON t1.x1 = t2.y1 AND t1.x2 = t2.y2
SET t1.a1 = t2.a2 ,
t1.b1 = t2.b2;
但我得到一个关于&#34的错误;表达式无效,这意味着它不遵循JPQL语法"
有没有办法使用JPA(JPQL)语法执行此查询?使用Native Query(MYSQL)它可以正常工作。
答案 0 :(得分:0)
以下 - 无论多么糟糕和低效 - 都是等效的,可能对JPQL有效:
UPDATE
Table t1
SET t1.a1 = ( SELECT t2.a2
FROM Table t2
WHERE t1.x1 = t2.y1 AND t1.x2 = t2.y2
),
t1.b1 = ( SELECT t2.b2
FROM Table t2
WHERE t1.x1 = t2.y1 AND t1.x2 = t2.y2
)
WHERE EXISTS
( SELECT *
FROM Table t2
WHERE t1.x1 = t2.y1 AND t1.x2 = t2.y2
) ;