Spring batch 没有枚举常量类org.springframework.batch.core.JobParameter$ParameterType.DATE-Informix

Spring batch 没有枚举常量类org.springframework.batch.core.JobParameter$ParameterType.DATE-Informix,spring-batch,Spring Batch,因此,我正在Informix数据库中设置一个持久的spring批处理v2.2.2作业repo。我已经调整了oracle sql脚本,并使用此sql创建了“批处理作业执行参数”表-注意,“日期”列映射到“日期” CREATE TABLE 'dba'.BATCH_JOB_EXECUTION_PARAMS ( JOB_EXECUTION_ID INTEGER NOT NULL , TYPE_CD CHAR(6) NOT NULL , KEY_NAME CHAR(100) NOT NULL , STR

因此,我正在Informix数据库中设置一个持久的spring批处理v2.2.2作业repo。我已经调整了oracle sql脚本,并使用此sql创建了“批处理作业执行参数”表-注意,“日期”列映射到“日期”

CREATE TABLE 'dba'.BATCH_JOB_EXECUTION_PARAMS  (
JOB_EXECUTION_ID INTEGER NOT NULL ,
TYPE_CD CHAR(6) NOT NULL ,
KEY_NAME CHAR(100) NOT NULL ,
STRING_VAL CHAR(250) ,
DATE_VAL DATE DEFAULT NULL ,
LONG_VAL INTEGER ,
DOUBLE_VAL DOUBLE PRECISION ,
IDENTIFYING CHAR(1) NOT NULL ,
foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
constraint JOB_EXEC_PARAMS_FK 
);
我运行了第一个作业,可以在表中看到这一行

job_execution_id    type_cd key_name    string_val  date_val    long_val    double_val  identifying
2   DATE    RUN_DATE        05/12/2013  0   0.0 Y
但是我的代码失败了,出现了这个异常。有人知道为什么日期的“type_cd”值不能映射到枚举类型吗

15:12:27,325 DEBUG [AbstractJob] Job execution starting: JobExecution: id=2, version=0, startTime=null, endTime=null, lastUpdated=Thu Dec 05 15:12:27 GMT 2013, status=STARTING, exitStatus=exitCode=UNKNOWN;exitDescription=, job=[JobInstance: id=2, version=0, Job=[ExtractorJob]], jobParameters=[{RUN_DATE=1386256347064}]
15:12:27,520 ERROR [AbstractJob] Encountered fatal error executing job
java.lang.IllegalArgumentException: No enum const class org.springframework.batch.core.JobParameter$ParameterType.DATE  
    at java.lang.Enum.valueOf(Enum.java:196)
    at org.springframework.batch.core.JobParameter$ParameterType.valueOf(JobParameter.java:180)
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao$2.processRow(JdbcJobExecutionDao.java:363)
    at org.springframework.jdbc.core.JdbcTemplate$RowCallbackHandlerResultSetExtractor.extractData(JdbcTemplate.java:1482)
    at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:649)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:686)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:694)
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.getJobParameters(JdbcJobExecutionDao.java:381)
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.access$000(JdbcJobExecutionDao.java:61)
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao$JobExecutionRowMapper.mapRow(JdbcJobExecutionDao.java:410)
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao$JobExecutionRowMapper.mapRow(JdbcJobExecutionDao.java:392)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:1)
    at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:649)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:718)
    at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.findJobExecutions(JdbcJobExecutionDao.java:130)
    at org.springframework.batch.core.repository.support.SimpleJobRepository.getLastStepExecution(SimpleJobRepository.java:213)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

由于CHAR6类型的填充空格。改用VARCHAR,一切都会好起来的。 在日志中选择从.DATE到行尾的文本,您将注意到额外的空格: