Как ссылаться на пользовательский «ConnectionProvider» в EclipseLink? - PullRequest
1 голос
/ 08 ноября 2019

В Hibernate я могу определить свойство с именем: hibernate.connection.provider_class, чтобы объявить класс, который должен использоваться Hibernate для создания новых соединений. Этот класс должен реализовывать интерфейс org.hibernate.engine.jdbc.connections.spi.ConnectionProvider. Есть ли что-нибудь похожее в EclipseLink?

Вариант использования, за которым я хочу обернуть jdbc-соединения, созданные JPA-провайдером, используя класс, который позволяет ему манипулировать операторами, отправляемыми в JDBC-драйвер. ,

Например, я хочу удалить sql-подсказки, используемые в производительном коде, чтобы иметь возможность заменить производительную базу данных во время тестов на H2.

1 Ответ

3 голосов
/ 08 ноября 2019

Согласно официальной документации в EclipseLink JavaDoc (версия 2.6.x), вы можете использовать:

<property name="eclipselink.jdbc.connector" value="package.MyConnector"/>

в вашем persistence.xml. Таким образом, вы можете обратиться к классу MyConnector, который должен реализовывать интерфейс org.eclipse.persistence.sessions.Connector, который определяет методы, которые

разрешить TopLink получить соединение с базой данных JDBC .

Я думаю, что таким образом должна быть возможность "конфигурировать" соединения так, как вы их описываете.

FYI : Вы можете перейти с org.eclipse.persistence.sessions.DefaultConnector на случай, если под рукой имеются типичные (JDBC) параметры конфигурации.

Надеюсь, это поможет.

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