0

如何检查参数是否正确传递到 Hibernate 本机查询?

这是我的 Spring Data 存储库:

public interface TasksRepository extends JpaRepository<Task, Long> {
@Query(value = "SELECT * FROM tasks_table WHERE jsonb_path_exists(task_tags, "
        + "'$[*] ? (@.entityCode == $code && @.entityId == $id)', "
        + "'{\"code\":\"?1\", \"id\":\"?2\"}')",
       nativeQuery = true)
List<Task> findTasksByEntityCodeAndEntityId(String entityCode, UUID entityId);
}

这些是我的日志:

Hibernate: 
SELECT
    * 
FROM
    tasks_table 
WHERE
    jsonb_path_exists(task_tags, '$[*] ? (@.entityCode == $code && @.entityId == $id)', '{"code":"?1", "id":"?2"}')

但是我看不到在将查询传递给 PostgreSQL 13 之前检查变量是否被替换的方法;这看起来很奇怪,但与我也记录的经典派生查询一致,最终得到类似“where task0_.task_name=?”的跟踪。其中也没有显示参数值。

有谁知道为什么我的位置参数不被这个本机查询解释,因为我知道它们应该是?感谢您的任何提示!

4

0 回答 0