【发布时间】:2018-04-12 20:52:27
【问题描述】:
我想使用不同的模式来保存 Spring Batch 表。我可以在JobRepositoryFactoryBean 中看到我的新数据源。但是这些表仍然是在我有业务表的其他 shcema 中创建的。我在某些地方读到我可以使用dataSource.setValidationQuery 来更改架构,但仍然无法正常工作。我可以解决这个问题。下面是JobRepositoryFactoryBean 和Datasource 属性。
@Bean
@Qualifier("batchDataSource")
protected JobRepository createJobRepository() throws Exception {
JobRepositoryFactoryBean factory = createJobRepositoryFactoryBean();
factory.setDataSource(getDataSource());
if (getDbType() != null) {
factory.setDatabaseType(getDbType());
}
factory.setTransactionManager(getTransactionManager());
factory.setIsolationLevelForCreate(getIsolationLevel());
factory.setMaxVarCharLength(maxVarCharLength);
factory.setTablePrefix(getTablePrefix());
factory.setValidateTransactionState(validateTransactionState);
factory.afterPropertiesSet();
return factory.getObject();
}
spring.datasource.url=url
spring.datasource.username=username
spring.datasource.password=pwd
spring.datasource.driver-class-name:oracle.jdbc.driver.OracleDriver
spring.datasource.validation-query=ALTER SESSION SET
CURRENT_SCHEMA=schemaname
#batch setting
spring.batch.datasource.url=burl
spring.batch.datasource.username=busername
spring.batch.datasource.password=bpwd
spring.batch.datasource.driver-class-name:oracle.jdbc.driver.OracleDriver
spring.batch.datasource.validation-query=ALTER SESSION SET
CURRENT_SCHEMA=batchschema
org.apache.tomcat.jdbc.pool.DataSource dataSource = new org.apache.tomcat.jdbc.pool.DataSource();
dataSource.setName("batchDataSourceName");
dataSource.setDriverClassName(batchDataSourceProperties.getDriverClassName());
dataSource.setUrl(batchDataSourceProperties.getUrl());
dataSource.setUsername(batchDataSourceProperties.getUsername());
dataSource.setPassword(batchDataSourceProperties.getPassword());
// dataSource.setValidationQuery(batchDataSourceProperties.getValidationQuery());
【问题讨论】:
-
你在用
@EnableBatchProcessing吗? -
@Michael,是的,我正在使用它
-
任何人都知道为什么它不保存在不同的架构中
-
那么您是否使用自定义
BatchConfigurer来确定要用于批处理模式的DataSource? -
@Michael,不。我所做的只是上面代码中给出的内容
标签: schema spring-batch