postgresql - 如何让 PostgreSQL DBLink 连接与 JDBC 一起使用?
问题描述
我无法让命名/未命名的 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 应用程序中不起作用。
有谁知道我能做些什么来修复它?
解决方案
调用dblink_connect()
需要一个事务。
您的代码打开并立即关闭它。dblink_get_connections
在另一个事务中执行。
您可以使用@Transactional
您的方法来更改此行为。
推荐阅读
- c# - 如果单击行并将其列从 true 更改为 false,我如何在 DataGrid 中检测到,反之亦然?
- javascript - 如何在 javascript 中使用另一个数组中的属性过滤一个数组中的对象?
- angular - 角度条件
- javascript - 在 Javascript 中获取 Bootstrap 的当前主题颜色
- terraform - 如何以编程方式获取 Terraform 模块名称?
- java - BeanNotOfRequiredTypeException:名为 X 的 Bean 应该属于 X 类型,但实际上属于“com.sun.proxy.$Proxy”类型
- rspec - 为 RSpec rails 5 创建未定义的方法
- ios - 将 View 动画到 collectionView 中的选定单元格或 scrollView 中的 tableView
- amazon-s3 - 为什么 october cms 不通过使用 amazon-s3 上传图像将附件保存在 db 上?
- i2c - I2C 通信有什么问题?