如何使用MyBatis(Java)在postgres中设置INSERT查询的超时

时间:2014-01-04 13:38:27

标签: java postgresql mybatis

在Mybatis中,映射器文件有一个属性timeout,但会抛出异常。

Cause: org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.
uncategorized SQLException for SQL []; SQL state [0A000]; error code [0]; Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.; nested exception is org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.
........

1 个答案:

答案 0 :(得分:0)

PostgreSQL当前不支持服务器级别的查询超时。所以PgJDBC很难在客户端实现它们,尽管我认为当前的PgJDBC版本使用statement_timeout来模拟它。

无论如何,如果更新到最新的PgJDBC(你没有指定你的版本)没有帮助,你需要做的是SET statement_timeout 你的查询之前,然后重置它查询。只需执行:

SET statement_timeout = '5s';
查询前的

或其他任何内容。如果您在已经打开的事务中运行它,则可以使用SET LOCAL来设置事务范围。