HibernateCursorItemReader itemReader

Fermé
starghof Messages postés 177 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 8 avril 2011 - 7 août 2009 à 16:48
starghof Messages postés 177 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 8 avril 2011 - 11 août 2009 à 11:42
Bonjour,
je suis en train d'integrer hibernate à spring batch.
j'ai trouvé hibernateCursorItemReader.
lorsque j'ai copié le code et l'assayé une exception est declenché:
"Error creating bean with name 'dataSourceInitializer' defined in class path resource [launch-context.xml]: Invocation of init method failed; nested exception is org.springframework.batch.item.ItemStreamException: Failed to initialize the reader"

voilà le code :
HibernateCursorItemReader itemReader = new HibernateCursorItemReader();
itemReader.setQueryString("from CustomerCredit");

SessionFactory sessionFactory=null;



itemReader.setSessionFactory(sessionFactory);

itemReader.setUseStatelessSession(true);

int counter = 0;
ExecutionContext executionContext = new ExecutionContext();
itemReader.open(executionContext);
Object customerCredit = new Object();
while(customerCredit != null){
try {
customerCredit = itemReader.read();
} catch (UnexpectedInputException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
counter++;
}
itemReader.close();


//////////////////////////////////
je crois que le pb est du à la creation de SessionFactory .
je suis bloquée ,s'il vous plais aidez moi ! c'est urgent.

remarque: j'ai copié le code de l'internet suivant : apres avoir faire quelque modifications.



Hibernation itemReader = new HibernateCursorItemReader();
itemReader.setQueryString("from CustomerCredit");
//For simplicity sake, assume sessionFactory already obtained.
itemReader.setSessionFactory(sessionFactory);
itemReader.setUseStatelessSession(true);
int counter = 0;
ExecutionContext executionContext = new ExecutionContext();
itemReader.open(executionContext);
Object customerCredit = new Object();
while(customerCredit != null){
customerCredit = itemReader.read();
counter++;
}
itemReader.close(executionContext);

2 réponses

starghof Messages postés 177 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 8 avril 2011 4
7 août 2009 à 17:56
help !!!!!!!!!!!!
0
starghof Messages postés 177 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 8 avril 2011 4
11 août 2009 à 11:42
le pb est resolu !
en fait j'ai utilisé hibernate2 et hibernate3 dans mon projet ce qui a perturbé le fonctionnement de programme !!
apres le reglage j'ai utilisé uniquement hibernate 3. :D
d'autre part il faut creer le bean sessionFactory dans un fichier de configuration spring à laquelle on lui passe le dataSource et le fichier de mapping !!
bref il s'agissait d'integrer hibernate dans spring et utiliser le hibernateCursorItemReader de spring batch qui a l'avantage de traiter les grands volumes des base de donnée grace à itemReader et itemWriter de spring batch !

pour plus d'information : contactez moi par mon gmail: ghofrane.rhimi@gmail.com

bonne chance à tout!
0