【问题标题】:JPQL: How can I use the row as a parameter for a stored function call?JPQL:如何将行用作存储函数调用的参数?
【发布时间】:2020-02-26 02:29:05
【问题描述】:

我有一个名为 validate_row 的存储函数,它从表中获取一行并返回一个布尔值,我想执行如下查询:

SELECT * FROM table T WHERE validate_row(T) = true

在 PostgreSQL 中直接执行这个查询可以,但是下面的 JPQL 注解会使用表的主键作为函数参数而不是行:

@Query("SELECT someDAO from table T WHERE function('validate_row', T) = true")

关于如何使它使用行作为参数的任何想法?

【问题讨论】:

    标签: postgresql spring-data-jpa jpql


    【解决方案1】:

    默认情况下,@Query 以 JPQL 运行查询。因此,要以 SQL 原生方式运行查询,请使用 nativeQuery = true

    试试这个:

    @Query(value = "SELECT * FROM table t WHERE validate_row(t) = true", nativeQuery = true)
    

    【讨论】:

    • 我没有尝试本地运行查询。
    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    相关资源
    最近更新 更多