首页 > 解决方案 > 为 Spring 数据中的本机查询设置 work_mem

问题描述

我需要为使用 Spring Data 存储库执行的本机查询设置 work_mem。

尝试进行如下本机查询

SET LOCAL WORK_MEM TO '8 MB';{Actual query} 

但这不起作用,因为 postgres 驱动程序正在拆分查询并将它们作为两个查询执行。由于第一个查询没有结果集,驱动程序抛出异常。

我正在寻找一种为此特定查询设置 work_mem 的方法

标签: hibernatespring-data-jpaspring-data

解决方案


您需要在调用实际查询之前触发 DDL 语句。

@Query确保使用附加注释对您的 DDL进行@Modifying注释。没有这个,引擎会期望一个结果集。

@Modifying您可以执行,也可以在UPDATE, DELETE您的情况下执行 DDL 语句。

确保将返回类型设置为void.


推荐阅读