powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как установить значение параметра reWriteBatchedInserts?
5 сообщений из 5, страница 1 из 1
Как установить значение параметра reWriteBatchedInserts?
    #40072375
Параметр PostgreSQL jdbc reWriteBatchedInserts можно установить используя url. Например, авторspring.datasource.jdbc-url=jdbc:postgresql://[host]:5432/[имя БД]?reWriteBatchedInserts=true .
Вопрос - можно ли его установить каким-либо другим образом - в файле свойств или в java коде или еще как-то?
...
Рейтинг: 0 / 0
Как установить значение параметра reWriteBatchedInserts?
    #40072483
Поставлю вопрос немного по-другому. Как в SpringBoot дотянуться от HikariDataSource к объекту PGSimpleDataSource. А у объекта PGSimpleDataSource уже есть возможность выполнить
автор ( (PGSimpleDataSource) dataSource()).setReWriteBatchedInserts(true);
...
Рейтинг: 0 / 0
Как установить значение параметра reWriteBatchedInserts?
    #40072520
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача не очень понятна, т.к. нормальные люди jdbc-url и так в файле свойств указывают.

И вообщеm кажется, что это вопрос по Java, а не по PG. Если нужно получить доступ к родным классам PG JDBC драйвера, то можно посмотреть какой именно класс Connection (ProxyConnection) у Вас возврашается из пула. Попытаться найти его исходные коды и взять из него родной PG Connection.

Если это https://github.com/brettwooldridge/HikariCP/blob/dev/src/main/java/com/zaxxer/hikari/pool/ProxyConnection.java
то поле delegate protected и получить доступ вполне можно

Конкретно c reWriteBatchedInserts не сталкивался. Дальше копаться в PG сорцах лениво.
...
Рейтинг: 0 / 0
Как установить значение параметра reWriteBatchedInserts?
    #40072548
В данном случае, jdbc-url задается в application.properties SpringBoot. Не хочется его обременять ?reWriteBatchedInserts=true . Хочется где-нибудь в собственном фреймворке определить это свойство и чтобы те кто будут пользоваться этим фреймворком не думали об этом.
А зачем мне PG Connection, как мне дотянуться от него до PGSimpleDataSource?
reWriteBatchedInserts это один из параметров, перечисленных в org.postgresql.PGProperty, заначения, которых можно устанавливать в jdbc-url и еще как-то. Конкретно reWriteBatchedInserts=true приводит к тому что batch пакет одинаковых insert ... into values (...) объединяются в один insert ... into values(...), values(...) ..., values(...) перед посылкой на сервер БД.
...
Рейтинг: 0 / 0
Как установить значение параметра reWriteBatchedInserts?
    #40072839
Проблема решена. В классе конфигурации DataSource SpringBoot, в бине определения DataSоurce надо добавить установку параметра примерно следующим образом
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource getDataSource() {
        DataSourceBuilder<?> dataSourceBuilder = DataSourceBuilder.create();
        DataSource dataSource = dataSourceBuilder.build();
        	
        if(dataSource instanceof HikariDataSource) {
	if ("org.postgresql.Driver".equals(driverClassName)) {
        		logger.trace("set search_path to'{}'", schemaName);
        		((HikariDataSource) dataSource).setConnectionInitSql("set search_path to '" + schemaName  +"'");
        		Properties dsProperties = new Properties();
        		dsProperties.setProperty( "reWriteBatchedInserts", "true");
        		((HikariDataSource) dataSource).setDataSourceProperties(dsProperties);
	}
	}
        return dataSource;
   }
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как установить значение параметра reWriteBatchedInserts?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]