Использование GCP Cloud SQL SocketFactory с конфигурацией Hibernate - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь подключиться к экземпляру базы данных Cloud SQL Postgres из стандарта GCP App Engine (GAE).Использование имени подключения экземпляра базы данных (my-project-id: europe-west1: db-instance-name) с Cloud SQL SocketFactory с Hibernate.

    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 Ответ

0 голосов
/ 31 мая 2019

Я думаю, что используемая вами реализация не подходит для App Engine Standard, вам следует проверить реализацию Google, которую можно найти в официальной документации.

Официальная документация Google для подключенияв CloudSQL из App Engine

Пример проекта Google на GitHub

...