Spring Boot vs JOOQ vs Unix socket

问题描述

我有带有 JOOQ 的 Spring 启动应用程序,用于处理 PostrgesDB。 此应用必须在 Google Cloud 上运行。如果我将其部署为 AppEngine Flex,则一切正常。

现在我需要在 google run 中部署和运行这个应用程序。描述了将 Cloud Run 与 PostgresDB 连接的方式https://cloud.google.com/sql/docs/postgres/connect-run#public-ip-default_1

我的问题是结合使用 JOOQ 和 com.google.cloud.sql.postgres.socketFactory 你有什么解决办法吗?

解决方法

jOOQ 提供了通过 JDBC 执行查询的方法,从 jOOQ 3.15 开始通过 R2DBC。如果您的安装不支持 JDBC 或 R2DBC 驱动程序但需要更多低级交互,则不能使用 jOOQ 直接执行 SQL,但您仍然可以从 jOOQ 查询中提取 SQL 字符串和绑定变量并实现粘合代码以你自己的SocketFactory。此处提供了一个示例,其中 jOOQ queries are executed on a JPA EntityManager:

// query is any jOOQ query
String sql = query.getSQL();
List<Object> binds = query.getBindValues();