JPQL:如何将行用作存储函数调用的参数?

问题描述 投票:0回答:1

我有一个称为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个回答
0
投票

默认情况下,@Query以JPQL的形式运行查询。因此,要将查询作为SQL本机运行,请使用nativeQuery = true

尝试一下:

@Query(value = "SELECT * FROM table t WHERE validate_row(t) = true", nativeQuery = true)
© www.soinside.com 2019 - 2024. All rights reserved.