Spring Postgresql-同步提交关闭时未发生提交

Spring Postgresql-同步提交关闭时未发生提交,spring,postgresql,jpa,stored-procedures,commit,Spring,Postgresql,Jpa,Stored Procedures,Commit,我在Postgresql中有一个存储过程,如下所示- CREATE OR REPLACE FUNCTION add_flows(records IN text, store IN varchar) RETURNS Integer AS $body$ DECLARE rowsInserted INT; BEGIN insert into mytable select * from anothertable; GET DIAGNOSTICS rowsInserted = RO

我在Postgresql中有一个存储过程,如下所示-

CREATE OR REPLACE FUNCTION add_flows(records IN text, store IN varchar)
RETURNS Integer AS
$body$
DECLARE
    rowsInserted INT;
BEGIN
    insert into mytable select * from anothertable;
    GET DIAGNOSTICS rowsInserted = ROW_COUNT;
    RETURN rowsInserted;
END;
$body$
LANGUAGE plpgsql SET synchronous_commit to OFF;
当我通过SpringJPA调用此存储过程时,它运行良好,但稍后当我检查mytable中的记录计数时,它显示为0

如果我删除
SET synchronous\u commit to OFF
设置,则不会发生这种情况,即插入记录并且表上的计数反映正确的值


要使用“在同步提交标志关闭的情况下运行存储过程”,是否还需要配置任何其他内容?

从psql命令行运行此操作时,它是否正常工作?我在psql上尝试了该方案,但在psql上也不起作用。对于前面关于psql上提交失败的评论,我感到抱歉。我再次测试,该场景与psql一起工作,但通过JPA调用时失败。
synchronous_commit
不会更改事务的语义(从客户端的角度)。仅限于数据的物理写入方式。您确切的Postgres版本是什么(将
select version()
的输出添加到您的问题中)。如果从JDBC内部使用“普通”insert并手动将
synchronous_commit
设置为off,会发生什么情况?它对JDBC“起作用”吗?当您从psql命令行运行它时,它能正常工作吗?我在psql上尝试了这个场景,它在psql上也不起作用。我很抱歉之前关于psql上提交失败的评论。我再次测试,该场景与psql一起工作,但通过JPA调用时失败。
synchronous_commit
不会更改事务的语义(从客户端的角度)。仅限于数据的物理写入方式。您确切的Postgres版本是什么(将
select version()
的输出添加到您的问题中)。如果从JDBC内部使用“普通”insert并手动将
synchronous\u commit
设置为off,会发生什么情况?它对JDBC“起作用”吗?