Странные числа в сгенерированном CSV с Spring Batch - PullRequest
0 голосов
/ 21 мая 2019

Я разрабатываю пакет Spring для получения данных из таблицы в файл CSV.Вот таблица, из которой я извлекаю данные:

CREATE TABLE TMP_SYNCHRONIZED_RSLT
(SERIAL_QA NUMBER(20) UNIQUE
, NB_RECENT VARCHAR2(10)
, NB_ARTICLE VARCHAR2(2)
);

У меня читатель выглядит следующим образом:

<bean id="serialNumbersReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
    <property name="fetchSize" value="${batch.job.fetch.interval}" />
    <property name="dataSource" ref="dataSource" />
    <property name="rowMapper">
        <bean class="org.springframework.jdbc.core.BeanPropertyRowMapper">
            <property name="mappedClass" value="ca.org.serialNumbersGenerationBatch.batch.synchronization.dto.ExtractSerialNumbersDto" />
        </bean>
    </property>
    <property name="sql">
        <value>
            <![CDATA[
                SELECT SERIAL_QA, NB_RECENT, NB_ARTICLE from TMP_SYNCHRONIZED_RSLT
            ]]>
        </value>
    </property>
</bean>

И мой писатель:

    <bean id="csvWriteSerialNumbers" 
class="org.springframework.batch.item.file.FlatFileItemWriter">
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
                <property name="delimiter" value=";" />
                <property name="fieldExtractor">
                    <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                        <property name="names" value="serialQa, nbRecent, nbArticle" />
                    </bean>
                </property>
            </bean>
        </property>
        <property name="encoding" value="${csv.encoding}" />
        <property name="headerCallback">
            <bean class="fr.canalplus.cgaweb.batch.common.writer.StringHeaderFooterCallback">
                <property name="header" value="SERIAL_QA;NB_RECENT;NB_ARTICLE" />
            </bean>
        </property>
        <property name="resource" value="file:${tmp.dir}/serialNumbers.csv" />
    </bean>

мой csv.encoding = ISO-8859-1.И я поместил String во все мои атрибуты DTO.Это генерирует странные числа, такие как 2,49254E + 12 вместо 24925418071 в моем CSV под SERIAL_QA.Любая идея о том, как решить эту проблему без изменения типа столбца?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...