Java program crashes while updating the database (hibernate) -
i developing java app client. have postgresql table (dossier) 21 columns. in 1 of functions have save 13 rows of 21 columns each in database. doing using 1 hibernate session; if not program crashes. database save 13 rows crashes, don't know if asking don't know way of doing this. if not application works perfectly, issue.
here code:
private void creeretchargerar(string numdossier) throws exception{ //creation du dossier //start session session1= hibernateutil.getsessionfactory().opensession(); transaction tx1 = session.begintransaction(); dossieraras dossier = new dossieraras(); dossierarasid iddos = new dossierarasid(); iddos.setmatricule(labelmatricule.gettext()); iddos.setcode(labelcode.gettext()); iddos.sethorodatage(control.horodatage()); iddos.setdatedebutdemande(control .datelabelswttodatepostgres(labeldatedebdemande .gettext())); iddos.settypeattestation(labeltypeatt.gettext()); iddos.setnumdossier(numdossier); dossier.setdatedebut(control .datelabelswttodatepostgres(labeldatedeb .gettext())); dossier.setdatefindemande(operationsdate.dateoracletodatepostgres("29991231")); dossier.setdatefin(control .datelabelswttodatepostgres(labeldatefin .gettext())); dossier.setmatriculegestionnaire(matriculegestionnaire); dossier.setmatriculegestionnaire(matriculegestionnaire); dossier.setstatut("e"); dossier.setdateaccident(control .datelabelswttodatepostgres(labeldateaccident.gettext())); string date1 = null; //float sommenet = 0f; float sommebrut = 0f; float sommesft = 0f; float sft = 0f; float mois13 = 0f; float asl = 0f; //string datedebutoracle = control.javautildatetostringasar(labeldatedeb.gettext()); string dateasa = control.javautildatetostringasar(labeldatedeb.gettext()); string datedebutoracle = salaire_dao.moismoins1(dateasa); system.out.println(datedebutoracle); iddos.setperpaie(salaire_dao.recupperpaiaras(datedebutoracle)); dossier.setid(iddos); asl = (salaire_dao.recupsalaire(datedebutoracle, labelmatricule.gettext(), rubrique.asl)== null) ? 0f:float.parsefloat(salaire_dao.recupsalaire(datedebutoracle, labelmatricule.gettext(), rubrique.asl)); dossier.setsalairebrut(asl); system.out.println(asl); sft = (salaire_dao.recupsalaire(datedebutoracle, labelmatricule.gettext(), rubrique.sft)== null) ? 0f: float.parsefloat(salaire_dao.recupsalaire(datedebutoracle, labelmatricule.gettext(), rubrique.sft)); dossier.setsft(sft); system.out.println(sft); sommebrut = asl; sommesft = sft; date1 = salaire_dao.moismoins1(datedebutoracle); system.out.println(date1); system.out.println(sommebrut); session1.saveorupdate(dossier); session1.flush(); session1.clear(); //creation des 12 lignes pour chaque perpaie (int = 1; i<12; i++){ iddos.setperpaie(salaire_dao.recupperpaiaras(date1)); dossier.setid(iddos); asl = (salaire_dao.recupsalaire(date1, labelmatricule.gettext(), rubrique.asl)== null) ? 0f:float.parsefloat(salaire_dao.recupsalaire(date1, labelmatricule.gettext(), rubrique.asl)); dossier.setsalairebrut(asl); system.out.println(asl); sft = (salaire_dao.recupsalaire(date1, labelmatricule.gettext(), rubrique.sft)== null) ? 0f: float.parsefloat(salaire_dao.recupsalaire(date1, labelmatricule.gettext(), rubrique.sft)); dossier.setsft(sft); system.out.println(sft); sommebrut = sommebrut + asl; sommesft = sommesft + sft; date1 = salaire_dao.moismoins1(date1); system.out.println(date1); system.out.println(sommebrut); session1.saveorupdate(dossier); session1.flush(); session1.clear(); //i++; } iddos.setperpaie("total"); dossier.setid(iddos); system.out.println(dossier.getid().getperpaie()); dossier.setsalairebrut(float.parsefloat(string.valueof(sommebrut))); dossier.setsft(float.parsefloat(string.valueof(sommesft))); mois13 = sommebrut/12; dossier.setmois13(float.parsefloat(string.valueof(mois13))); session1.saveorupdate(dossier); //session1.gettransaction().commit(); session1.flush(); if (!tx1.wascommitted()){ tx1.commit(); session1.close(); } //fin creation du dossier //affichage des donnes btn_d_valider.setvisible(true); btn_d_valider.setenabled(true); grpmemois13.setvisible(true); grpmesalairetotal.setvisible(true); grpcongsannuels.setvisible(true); group_2.setvisible(true); btn_d_editerlademande.setvisible(true); btn_d_editerlademande.setenabled(true); btnediterledossier.setenabled(false); text_mois13.settext(string.valueof(mois13)); sommesalaire.settext(string.valueof(sommebrut)); iterator<dossieraras> = dossieraras_dao.recuperer12periodes(numdossier); while (it.hasnext()){ dossieraras ds = it.next(); while (!ds.getid().getperpaie().equals("total")){ tableitem ligne1 = new tableitem(table_sft, swt.none); ligne1.settext(0, ds.getid().getperpaie()); ligne1.settext(1, string.valueof (ds.getsft())); } } }
it solved, instead of while (infinite boucle) had put if thats all.
thanks
Comments
Post a Comment