So konvertieren Sie Date in BeanWrapperFieldSetMapper
Lesen Sie den folgenden Spring-Batch-Job, lesen Sie Daten aus „domain.csv“ und ordnen Sie sie einem Domänenobjekt zu.
job-example.xml
domain.csv
1,facebook.com,Mon Jul 15 16:32:21 MYT 2013 2,google.com,Mon Jul 15 16:32:21 MYT 2013 3,youtube.com,Mon Jul 15 16:32:21 MYT 2013 4,yahoo.com,Mon Jul 15 16:32:21 MYT 2013 5,amazon.com,Mon Jul 15 16:32:21 MYT 2013
Domain.java
import java.util.Date;
public class DomainRanking {
private int id;
private String domainName;
private Date lastModifiedDate;
//...
}
Problem
Das Problem ist, wie das String-DatumMon Jul 15 16:32:21 MYT 2013 injava.util.Date abgebildet / konvertiert wird. Beim Ausführen des Jobs über dem Job werden die folgenden Fehlermeldungen angezeigt:
Cannot convert value of type [java.lang.String] to required type [java.util.Date]
for property 'lastModifiedDate':
no matching editors or conversion strategy found
Lösung
Um die Art und Weise anzupassen, in der FieldSet-Werte in den gewünschten Typ für das Einfügen in den Prototyp konvertiert werden, gibt es mehrere Möglichkeiten. Sie können PropertyEditor-Instanzen direkt über die customEditors-Eigenschaft einfügen.
Um dies zu beheben, deklariert aCustomDateEditor und injiziert übercustomEditors Eigenschaft inBeanWrapperFieldSetMapper.
job-example.xml
P.S The String Date “Mon Jul 15 16:32:21 MYT 2013” is represented by “EEE MMM dd HH:mm:ss z yyyy”.
Note
InjiziertCustomDateEditor nicht überCustomEditorConfigurer (global), es funktioniert nicht.