@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从未打开过。
任何线索?
由于