这是 MySQL 查询:
UPDATE grademyadvisor.gma_error AS ge
INNER JOIN
grademyadvisor.yodlee_error_code AS yec ON yec.id = ge.yodlee_error_id
SET
ge.is_resolved = 0
WHERE
ge.client_id = 639
AND yec.error_code = 402;
Spring Data JPA Query And getting Exception. Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting "set", found 'INNER' near line 1, column 39 [ UPDATE com.gma.domain.GMAError AS ge INNER JOIN ge.yodleeErrorCode AS yec SET ge.isResolved=:isResolved WHERE ge.client.id=:clientId AND yec.errorCode=:errorCode ]
@Query(" UPDATE GMAError AS ge "
+ "INNER JOIN ge.yodleeErrorCode AS yec "
+ "SET ge.isResolved=:isResolved "
+ "WHERE ge.client.id=:clientId "
+ "AND yec.errorCode=:errorCode ")
最佳答案
在 WHERE 子句中使用子查询来消除 INNER JOIN 语句:
UPDATE grademyadvisor.gma_error
SET
is_resolved = 0
WHERE
client_id = 639
AND yodlee_error_id = (SELECT id FROM grademyadvisor.yodlee_error_code WHERE error_code = 402);
关于mysql - 我尝试使用 JPA 查询中的内部联接更新一些记录,但出现一些异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34809436/