【发布时间】:2020-11-20 14:40:17
【问题描述】:
我正在尝试使用批处理将 CSV 文件中的数据与 Spring Boot 集成, 我对日期字段有疑问,因为无论使用哪种类型,它都会不断被拒绝, 这是我的代码:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String service;
private Timestamp time;
@Override
public IndProd process(final IndProd indProd) throws Exception {
String service = indProd.getService();
Timestamp time = indProd.getTime();
Long nbAppels = indProd.getNbAppels();
Integer tempsDeReponseMoyenMillisecondes = indProd.getTempsDeReponseMoyenMillisecondes();
Long volume = indProd.getVolume();
BigDecimal tempsDeReponseMoyenSecondes = indProd.getTempsDeReponseMoyenSecondes();
IndProd transformedIndProd = new IndProd(service,time,nbAppels,tempsDeReponseMoyenMillisecondes,volume,tempsDeReponseMoyenSecondes);
return transformedIndProd;
}
这是返回的错误:
引起:org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 个错误 字段“时间”上对象“目标”中的字段错误:拒绝值 [2020-09-18T00:00:00+02:00];代码 [typeMismatch.target.time,typeMismatch.time,typeMismatch.java.sql.Timestamp,typeMismatch]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码 [target.time,time];论据 [];默认消息[时间]]; 默认消息[无法转换类型的属性值 'java.lang.String' 到属性所需的类型'java.sql.Timestamp' '时间';嵌套异常是 java.lang.IllegalStateException: 不能 将“java.lang.String”类型的值转换为所需类型 属性“时间”的“java.sql.Timestamp”:没有匹配的编辑器或 找到转换策略] 在 org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper.mapFieldSet(BeanWrapperFieldSetMapper.java:201) ~[spring-batch-infrastructure-4.2.4.RELEASE.jar:4.2.4.RELEASE] 在 org.springframework.batch.item.file.mapping.DefaultLineMapper.mapLine(DefaultLineMapper.java:43) ~[spring-batch-infrastructure-4.2.4.RELEASE.jar:4.2.4.RELEASE] 在 org.springframework.batch.item.file.FlatFileItemReader.doRead(FlatFileItemReader.java:185) ~[spring-batch-infrastructure-4.2.4.RELEASE.jar:4.2.4.RELEASE] ... 56 常用框架省略
感谢您的帮助
【问题讨论】:
标签: java spring spring-boot spring-batch timestamp-with-timezone