【问题标题】:Convert H2 sql query to JPQL将 H2 sql 查询转换为 JPQL
【发布时间】:2019-07-13 01:38:37
【问题描述】:

我在开发中使用 H2 数据库,我写了一个本地查询,只支持 H2。我现在想把它转换成 JPQL,所以我可以在生产模式下使用它。

在查询中,我使用 DATE_ADD 函数,它将数据库中的一个值添加到当前日期,我尝试搜索 JPQL 的等效项,但没有成功。

@Modifying
@Transactional
@Query(
        value = "UPDATE ORDER_TABLE O SET O.STATE='CANCELED' WHERE O.STATE='PENDING' AND DATEADD('HOUR',SELECT P.VALUE FROM PARAMETER P WHERE P.NAME ='PENDING_ORDER_TTL' , O.CREATED_AT) < NOW()",
        nativeQuery = true)
void updatePendingOrder();

【问题讨论】:

    标签: spring-data-jpa h2 jpql


    【解决方案1】:

    您需要在 Java 中计算日期:

    @Query(value = "UPDATE Order o SET o.state='CANCELED'" + 
                 " WHERE o.state='PENDING' AND o.createdAt < :cutOff")
    @Modifying
    //Date/LocalDate/LocalDateTime or whatever
    public void updateOrders(@Param("cutOff") Date cutOff) 
    

    【讨论】:

    猜你喜欢
    • 2011-09-29
    • 2021-10-09
    • 2011-06-12
    • 1970-01-01
    • 2013-09-17
    • 2017-10-29
    • 2011-03-25
    • 2018-10-29
    • 1970-01-01
    相关资源
    最近更新 更多