Spring batch 使用java注释的Spring批处理java.lang.IllegalStateException:无法创建没有元数据的属性 尝试仅在项目中使用java anotations将字段集自动映射到域对象

Spring batch 使用java注释的Spring批处理java.lang.IllegalStateException:无法创建没有元数据的属性 尝试仅在项目中使用java anotations将字段集自动映射到域对象,spring-batch,Spring Batch,未能达到以下要求: BeanWrapperFieldSetMapper.mapFieldSet(第184行)位于下一行(第187行): 注意:我没有指定名称,因为我正在尝试自动映射 以下是我的代码: @Bean public LineMapper<Partner> lineMapper() { DefaultLineMapper<Partner> lineMapper = new DefaultLineMapper<Partner>()

未能达到以下要求:

BeanWrapperFieldSetMapper.mapFieldSet
(第184行)位于下一行(第187行):

注意:我没有指定名称,因为我正在尝试自动映射

  • 以下是我的代码:

    @Bean
        public LineMapper<Partner> lineMapper() {
            DefaultLineMapper<Partner> lineMapper = new DefaultLineMapper<Partner>();
            DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
            BeanWrapperFieldSetMapper<Partner> fieldSetMapper = new BeanWrapperFieldSetMapper<Partner>(); 
            fieldSetMapper.setBeanFactory(getApplicationContext()); 
            fieldSetMapper.setTargetType(Partner.class);
            lineMapper.setLineTokenizer(lineTokenizer);
            lineMapper.setFieldSetMapper(fieldSetMapper);
            return lineMapper;
        }
    
    @Bean
    公共线条映射器线条映射器(){
    DefaultLineMapper lineMapper=新的DefaultLineMapper();
    DelimitedLineTokenizer lineTokenizer=新的DelimitedLineTokenizer();
    BeanRapperFieldSetMapper=新的BeanRapperFieldSetMapper();
    setBeanFactory(getApplicationContext());
    fieldSetMapper.setTargetType(Partner.class);
    lineMapper.setLineTokenizer(lineTokenizer);
    lineMapper.setFieldSetMapper(fieldSetMapper);
    返回线映射器;
    }
    
  • 精确堆栈跟踪

    出口说明:<代码>org.springframework.batch.item.file.FlatFileParseException:在resource=[class path resource[partner import.csv]]的第1行出现解析错误,输入=[Mustermann,Max,dahiya。naveen@gmail.com,m]

    原因:
    java.lang.IllegalStateException:无法创建没有元数据的属性
    在org.springframework.batch.item.file.transform.DefaultFieldSet.getProperties(DefaultFieldSet.java:745)


  • 您缺少设置,因为您正在使用名称(您的
    合作伙伴的名称
    属性)

    我正在尝试自动映射,请参阅6.6.2.7。自动将字段集映射到batch ref中的域对象我不需要指定名称。您是否将标题名称映射到csv文件中?是的,我在partner bean中有第一个记录作为精确的列名。我没有标题,但我如何得到相同的错误@Luca Basso Ricci
    @Bean
        public LineMapper<Partner> lineMapper() {
            DefaultLineMapper<Partner> lineMapper = new DefaultLineMapper<Partner>();
            DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
            BeanWrapperFieldSetMapper<Partner> fieldSetMapper = new BeanWrapperFieldSetMapper<Partner>(); 
            fieldSetMapper.setBeanFactory(getApplicationContext()); 
            fieldSetMapper.setTargetType(Partner.class);
            lineMapper.setLineTokenizer(lineTokenizer);
            lineMapper.setFieldSetMapper(fieldSetMapper);
            return lineMapper;
        }