У меня есть приложение Spring Boot, которое использует Hibernate и Spring Batch. Я использую PostgresSQL для своей серверной базы данных.
В моем проекте настроено 2 разных источника данных. Один для Hibernate и один для Spring Batch. Они оба находятся в одной базе данных , но в разных схемах.
Моя строка подключения к пакетной версии Spring следующая:
spring.batch.datasource.url=jdbc:postgresql://localhost:5432/mytestapp?currentSchema=springbatch
У меня есть источник данных, настроенный следующим образом способ:
@Bean("b_ds_prop")
@ConfigurationProperties("spring.batch.datasource")
public DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean("b_ds")
@DependsOn({"b_ds_prop"})
public DataSource batchFrameworkDatasource(DataSourceProperties dataSourceProperties) {
System.out.println("start print");
// dataSourceProperties.getSchema().stream().forEach(System.out::println);
// System.out.println("datasrcprop is null : " + (dataSourceProperties==null));
// System.out.println("datasrcprop.schema is null : " + (dataSourceProperties.getSchema()==null));
System.out.println("end print");
// dataSourceProperties.setSchema(Arrays.asList("spring_batch"));
return dataSourceProperties.initializeDataSourceBuilder().build();
}
@Bean
@DependsOn({"b_ds"})
public BatchConfigurer defaultBatchConfigurer(@Qualifier("b_ds") DataSource dataSource) {
return new DefaultBatchConfigurer(dataSource);
}
Параметр currentSchema=springbatch
не соблюдается, что бы я ни делал. Все мои таблицы Spring Batch продолжают заканчиваться в public
в Postgres.
Схема с именем springbatch
уже присутствует в моей базе данных: mytestapp
.
Я пробовал currentSchema=springbatch, public
, я даже пробовал spring.batch.table-prefix=springbatch.
.
I пробовал все, , но все же я не могу понять, почему мои пакетные таблицы продолжают заканчиваться в схеме public
.
Обратите внимание, что у меня есть другая строка подключения в моем проекте, например:
spring.hib.datasource.url=jdbc:postgresql://localhost:5432/mytestapp
Я также попытался программно проверить, какое значение имеет schema
i n DataSourceProperties
.
System.out.println("datasrcprop.schema is null : " + (dataSourceProperties.getSchema()==null));
Это оценивается как истина.
Как я могу настроить другую схему для Spring Batch?
Любая помощь была бы замечательной.
Спасибо.