如何获得PostgreSQL DBLink连接以使用JDBC?

时间:2018-08-09 14:21:49

标签: postgresql spring-boot jdbc kotlin dblink

我无法获得命名/未命名的dblink连接以保留在我的springboot“ java”(实际上是kotlin)应用程序中。我正在用Kotlin编写代码。代码看起来像这样。

var result = jdbcTemplate.queryForObject<String>("SELECT dblink_connect('myTestConnectionName'," + myCloudServerConnectionString + ");")

println(result)  // prints "OK" meaning that it ran okay I believe.

var result2 = jdbcTemplate.queryForObject<String>("SELECT dblink_get_connections();")

println(result2) // prints "null" meaning there are no dblink connections.

我在PSQL和DBeaver中都手动运行SQL,它运行良好。当我运行“ dblink_get_connections” sql时,将看到命名的连接。它仅在我的springboot应用程序中不起作用。

有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

呼叫dblink_connect()需要进行交易。
您的代码将打开,然后立即关闭。 dblink_get_connections在另一个事务中执行。
您可以在方法上使用@Transactional来更改此行为。