【问题标题】:How can I do an UPDATE statement with JOIN in JPQL (Spring JPA Queries)?如何在 JPQL(Spring JPA 查询)中使用 JOIN 执行 UPDATE 语句?
【发布时间】:2017-11-19 13:40:21
【问题描述】:

这是此问题Update Statement with JOIN in SQL 的扩展,但我正在尝试使用 Spring Data JPQL。

我正在尝试在 JPQL 中使用 Update 和 JOIN,如下所示

@Modifying
@Query("UPDATE TotalValue tv JOIN LineItems li WHERE li.totalValue.totalValueId=:totalValuedId SET tv.totalAmount =sum(li.itemTotalValue) ")
void calculateTotalAmount(@Param("totalValuedId") Long totalValuedId);

但是,我收到如下错误

org.hibernate.hql.internal.ast.QuerySyntaxException: 期待“set”,发现 'JOIN'

在 JPQL 中不能进行 UPDATE 和 JOIN 吗?有什么选择。谢谢

【问题讨论】:

    标签: java hibernate jpa spring-data jpql


    【解决方案1】:

    JPQL syntax 似乎表明在 UPDATE 语句中实际上不可能进行 JOIN。

    【讨论】:

    • 非常感谢。我也有同样的怀疑。替代方案只是本机查询吗?
    • 通常可以在没有显式连接的情况下制定更新,只需使用属性导航,但我需要查看实体的相关部分才能确定。否则,是的,我认为本机查询将适用。
    • 感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 2017-12-20
    • 2017-11-30
    • 2011-10-02
    • 2013-02-19
    相关资源
    最近更新 更多