【问题标题】:Using GCP Cloud SQL SocketFactory with Hibernate Configuration将 GCP Cloud SQL SocketFactory 与 Hibernate 配置一起使用
【发布时间】: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]

【问题讨论】:

    标签: postgresql hibernate google-cloud-sql socketfactory


    【解决方案1】:

    我认为您使用的实现不适合 App Engine 标准,您应该检查可在官方文档中找到的 Google 实现。

    Official Google documentation to connect to CloudSQL from App Engine

    Google example project on GitHub

    【讨论】:

      猜你喜欢
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 2018-12-15
      • 2021-05-22
      • 1970-01-01
      • 2016-05-27
      相关资源
      最近更新 更多