将 GCP Cloud SQL SocketFactory 与 Hibernate 配置一起使用
Posted
技术标签:
【中文标题】将 GCP Cloud SQL SocketFactory 与 Hibernate 配置一起使用【英文标题】:Using GCP Cloud SQL SocketFactory with Hibernate Configuration 【发布时间】:2019-10-17 03:28:42 【问题描述】:我正在尝试从 GCP App Engine (GAE) 标准连接到 Cloud SQL Postgres 数据库实例。使用带有 Hibernate 的 Cloud SQL SocketFactory 的数据库实例连接名称 (my-project-id:europe-west1:db-instance-name)。
public static SessionFactory getSessionFactory()
if (sessionFactory == null)
try
Configuration configuration = new Configuration();
// Hibernate settings equivalent to hibernate.cfg.xml's properties
Properties settings = new Properties();
settings.put("hibernate.connection.provider_class","com.google.cloud.sql.postgres.SocketFactory");
settings.put("hibernate.hikari.minimumIdle","5");
settings.put("hibernate.hikari.maximumPoolSize","10");
settings.put("hibernate.hikari.idleTimeout","30000");
settings.put("hibernate.hikari.dataSource.url","jdbc:postgres://google/database-name?cloudSqlInstance=project:europe-west1:instance-id&socketFactory=com.google.cloud.sql.postgres.SocketFactory");
settings.put("hibernate.hikari.dataSource.user","postgres");
settings.put("hibernate.hikari.dataSource.password","password");
settings.put("hibernate.dialect","org.hibernate.dialect.mysqlDialect");
configuration.addAnnotatedClass(Country.class);
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
catch (Exception e)
LOGGER.info("============EXCEPTION===========>"+e.getMessage());
System.out.println(e.getMessage());
e.printStackTrace();
return sessionFactory;
无法创建请求的服务 [org.hibernate.engine.jdbc.connections.spi.ConnectionProvider]
【问题讨论】:
【参考方案1】:我认为您使用的实现不适合 App Engine 标准,您应该检查可在官方文档中找到的 Google 实现。
Official Google documentation to connect to CloudSQL from App Engine
Google example project on GitHub
【讨论】:
以上是关于将 GCP Cloud SQL SocketFactory 与 Hibernate 配置一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot 和 GCP - 使用 spring-cloud-gcp-starter-sql-postgresql 连接 Cloud SQL 实例尝试 SSL 并且延迟启动
有没有办法让 cloudbuild 步骤访问 GCP 中的 Cloud SQL