在ItemReader上添加@JobScope会使其失败

时间:2015-07-09 18:18:31

标签: spring-batch

@JobScope注释存在问题。 我使用spring-batch,使用spring-boot,所以没有xml。我也在使用hibernate,并希望在我的读者中使用它。

这是我的项目读者:

@Bean(name = "readerFactures")
public ItemReader<XFctFacture> readerFactures(SessionFactory sessionFactory) {
    HibernateCursorItemReader itemReader = new HibernateCursorItemReader();
    itemReader.setQueryString("from XFctFacture where typeFacture=1 and statut=1");
    itemReader.setSessionFactory(sessionFactory);

    return itemReader;
}

到目前为止,Everythink工作正常......:)

但现在我想从我的工作中访问一个参数,所以我需要用@JobScope注释我的读者。 所以我的新代码是:

@Bean(name = "readerFactures")
@JobScope
public ItemReader<XFctFacture> readerFactures(SessionFactory sessionFactory) {
    HibernateCursorItemReader itemReader = new HibernateCursorItemReader();
    itemReader.setQueryString("from XFctFacture where typeFacture=1 and statut=1");
    itemReader.setSessionFactory(sessionFactory);

    return itemReader;
}

有了这个,当我执行作业时,我有以下异常

java.lang.NullPointerException: null
at org.springframework.batch.item.database.HibernateCursorItemReader.doRead(HibernateCursorItemReader.java:155) ~[spring-batch-infrastructure-3.0.4.RELEASE.jar:3.0.4.RELEASE]
at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.read(AbstractItemCountingItemStreamItemReader.java:88) ~[spring-batch-infrastructure-3.0.4.RELEASE.jar:3.0.4.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_71]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]

光标为空,似乎我的ItemReader从未打开过。

任何线索?

由于

0 个答案:

没有答案