Spring Batch: PassThroughFieldExtractor z formatowaniem BigDecimal
Używam Spring Batch do wyodrębnienia pliku CSV z tabeli DB, która zawiera mieszankę typów kolumn. Przykładowy schemat SQL tabeli to
[product] [varchar](16) NOT NULL,
[version] [varchar](16) NOT NULL,
[life_1_dob] [date] NOT NULL,
[first_itm_ratio] [decimal](9,6) NOT NULL,
przykładowa wartość kolumny Baza danych dla pola „first_itm_ration” to
first_itm_ratio
1.050750
0.920000
ale chciałbym, aby mój plik CSV usunął końcowe zera z wartości.
first_itm_ratio
1.05075
0.92
Wolałbym nie musieć definiować formatowania dla każdego konkretnego pola w tabeli, ale raczej mieć globalne formatowanie specyficzne dla obiektu dla wszystkich kolumn tego typu danych.
Moja fasola csvFileWriter
<bean id="csvFileWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
<property name="resource" ref="fileResource"/>
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
<property name="delimiter">
<util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_COMMA"/>
</property>
<property name="fieldExtractor">
<bean class="org.springframework.batch.item.file.transform.PassThroughFieldExtractor" />
</property>
</bean>
</property>
</bean>