Spring batch 如何以CSV格式指定正确的时间戳

Spring batch 如何以CSV格式指定正确的时间戳,spring-batch,Spring Batch,我使用的是SpringBatch 3.0.8,在尝试使用org.springframework.Batch.item.file.mapping.beanwrapperfiedsetmapper接收CSV数据时遇到问题 配置文件如下所示: BMSContract类有一个有争议的字段,其定义如下: 私有java.sql.Date刷新\u TMS 数据文件具有以下CSV输入: 项目类型光盘,…'06-05-2018T01:02:08Z' 下面是我收到的错误消息: 原因:org.springfr

我使用的是SpringBatch 3.0.8,在尝试使用org.springframework.Batch.item.file.mapping.beanwrapperfiedsetmapper接收CSV数据时遇到问题

配置文件如下所示:



BMSContract类有一个有争议的字段,其定义如下:

私有java.sql.Date刷新\u TMS

数据文件具有以下CSV输入:

项目类型光盘,…'06-05-2018T01:02:08Z'

下面是我收到的错误消息:

原因:org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult:3个错误 字段“REFRESH\u TMS”上的对象“target”中的字段错误:值被拒绝 []; 代码 [typeMismatch.target.REFRESH_TMS,typeMismatch.REFRESH_TMS,typeMismatch.java.sql.Date,typeMismatch]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[target.REFRESH_TMS,REFRESH_TMS];参数[];默认消息 [REFRESH_TMS]];默认消息[无法转换的属性值] 将“java.lang.String”键入属性的必需类型“java.sql.Date” “REFRESH_TMS”;嵌套异常为java.lang.IllegalStateException: 无法将“java.lang.String”类型的值转换为所需类型 属性“REFRESH\u TMS”的“java.sql.Date”:没有匹配的编辑器或 找到转换策略]


我尝试了带引号和不带引号(单引号、双引号、无引号)。。。我在BMSContract对象中添加了一个重载方法,认为它可以调用该方法:``public void setREFRESH_TMS(String rEFRESH_TMS){SimpleDateFormat formatter=new SimpleDateFormat(“yyy-MM-dd't'HH:MM:ssZ”);}“``没有运气问题的根源是什么?是因为我的BMSContract对象的属性被声明为java.sql.Date吗?
<bean id="BMSDataItemReaderCSV" scope="step" class="org.springframework.batch.item.file.FlatFileItemReader">
    <!-- Read a csv file -->
    <property name="resource" value="file:#{jobParameters[bmsCSVFileInput]}" />

    <!-- Skip the header line -->
    <property name="linesToSkip" value="1" />

    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">

            <!-- split it -->
            <property name="lineTokenizer">
                <bean
                    class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <property name="names" value="PROJ_TYP_CD, ...removed ... REFRESH_TMS" />
                </bean>
            </property>

            <property name="fieldSetMapper">
                <bean
                    class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                    <property name="prototypeBeanName" value="bmsContract" />
                </bean>
            </property>

        </bean>
    </property>