我有一个称为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")
关于如何使用行作为参数的任何想法?
默认情况下,@Query以JPQL的形式运行查询。因此,要将查询作为SQL本机运行,请使用nativeQuery = true
。
尝试一下:
@Query(value = "SELECT * FROM table t WHERE validate_row(t) = true", nativeQuery = true)