【发布时间】:2015-05-20 09:53:51
【问题描述】:
我想使用 2 个使用 Spring Batch 后期绑定的日期作业参数执行查询。
JobParametersBuilder builder = new JobParametersBuilder()
builder.addDate("until", until);
builder.addDate("start", start);
JobExecution exec = jobLauncher.run(myJob, builder.toJobParameters())
我的豆子/工作定义:
myReader(JdbcPagingItemReader) { bean ->
bean.scope = 'step'
bean.autowire = 'byName'
dataSource = ref('dataSource')
queryProvider = ref('sqlPagingQueryProviderFactoryBean')
parameterValues = [
start: "#{jobParameters['start']}",
until: "#{jobParameters['until']}"
]
pageSize = '10'
rowMapper = ref('myRowMapper') // not shown here
}
sqlPagingQueryProviderFactoryBean(SqlPagingQueryProviderFactoryBean) { bean ->
bean.autowire = 'byName'
bean.scope = 'step'
dataSource = ref('dataSource')
selectClause = 'some_timestamp, column2'
fromClause = 'some_table'
whereClause = 'some_timestamp >= cast(:start as timestamp) AND some_timestamp < cast(:until as timestamp)'
sortKey = 'some_timestamp'
}
我遇到了各种各样的错误,具体取决于我如何转换时间戳等,例如(对于上面的代码):
step.AbstractStep 在作业中执行步骤 myStep 时遇到错误 myJob org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [SELECT some_timestamp, column2 FROM some_table WHERE some_timestamp >= cast(? as timestamp) AND some_timestamp
请问如何访问我的查询的时间戳?
【问题讨论】:
标签: grails spring-batch