Salut les gars,
je fais mes grands débuts sur Hibernate et je bute sur un problème. J'ai un fichier log de 76289 lignes à parser et les résultats je les mets dans une BDD.
Mon problème se situe au niveau des transactions. Quand je parse mon fichier avec les transactions (session.beginTransaction() au debut et session.getTransaction.commit() à la fin), je mets les elts dans une JavaBean et je fais
Sauf que l'opération met un temps fou pour pour récupérer les données et les mettre dans la base (> 15 mn) à tel point que je suis obligé d'arreter l'exécution. Quand je parse mon fichier sans transactions, ca se fait en quelques secondes et ne met rien dans la BDD.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 session.save(bean) ou session.persist(bean)
Quand je fais cette pte requete :
Dans le premier cas, ca me renvoie rien puisque je suis obligé d'arreter l'exécution tandis que dans le deuxième cas, ca me renvoie 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 List<Stat> ls = session.createQuery("Select * from Stat").list(); this.log.warn(ls.size());
J'ai essayé un petit astuce. J'ai initialisé un compteur à 25 et j'ai remarqué que les données sont effectivement insérées dans la base avec les transactions et ca m'affiche 25.
J'espère que je me suis fait comprendre dans mes explications. N'hésitez pas à me demander de clarifier certains points si je ne suis pas clair.
P.S: En passant, c'est quoi la différence entre la methode persist et save?
Partager