Как сказать Hibernate использовать прокси? - PullRequest
1 голос
/ 14 января 2020

В настоящее время используется Hibernate для сохранения объекта, с Snowflake в качестве базы данных. Hibernate зависает, когда пытается подключиться и зафиксировать базу данных. Это связано с тем, что моя компания требует от нас подключения через прокси .

Я прочитал документацию здесь . Документация не определяет, как Hibernate подключается через прокси ... это поддерживается? Как Hibernate подключается к объектам на прокси-сервере, или это вообще возможно?

Мой конфигурационный файл Hibernate:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="MySessionFactory">
        <property name="hibernate.connection.driver_class">net.snowflake.client.jdbc.SnowflakeDriver</property>
        <property name="hibernate.connection.password">****</property>
        <property name="hibernate.connection.url">jdbc:snowflake://made.up.location.snowflakecomputing.com</property>
        <property name="hibernate.connection.username">myUsername</property>
        <property name="hibernate.default_schema">mySchema</property>
        <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
        <property name="show_sql">true</property>
        <property name="hibernate.c3p0.timeout">100</property>

    </session-factory>
</hibernate-configuration>

Я надеюсь, что мы можем определить свойства аналогично этому :

Properties properties = new Properties();

        properties.put("user", "myUser");
        properties.put("password", "myPassword");
        properties.put("warehouse", "warehouseName");
        properties.put("db", "databaseName");
        properties.put("schema", "mySchema");
        properties.put("role", "myRole");
        properties.put("proxyHost", "proxy.myServer.com");
        properties.put("proxyPort", "80");
        properties.put("useProxy", "true");

Есть идеи, как заставить эту работу работать?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Я обошел эту проблему, поместив все параметры в строку подключения следующим образом:

<property name="hibernate.connection.url">jdbc:snowflake://myCompany.us-west-3.snowflakecomputing.com/?user=username&amp;password=password&amp;warehouse=WH_Name&amp;db=DB_Name&amp;schema=SCHEMA&amp;role=MYROLE&amp;proxyHost=proxy.com&amp;proxyPort=50&amp;useProxy=true</property>

Это обошло любые сложные настройки конфигурации с помощью Snowflake, и теперь я могу подключиться идеально.

0 голосов
/ 14 января 2020

Вот хорошая ссылка для подключения Hibernate к Snowflake. https://www.cdata.com/kb/tech/snowflake-jdbc-hibernate.rst

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...