Tuesday, 15 January 2013

jsf 2 - update row in jsf2 primefaces and hibernate is not updating in database -



jsf 2 - update row in jsf2 primefaces and hibernate is not updating in database -

i utilize primefaces edit row, , works fine, when deploy again, changes not updated , have no error in stacktrace.i utilize hibernate (hql language) update table in database.

* model table evaluacion ("modificarevaluacion" method update on db phone call service , service phone call dao , onrowedit event called when click check button)

@managedbean(name="evaluacion") @sessionscoped public class evaluacion implements serializable{ //getters , setters, methods insert , delete works fine. public string modificarevaluacion() { evaluacion ev= new evaluacion(); ev.grupo.setgrupo_id(grupo.getgrupo_id()); ev.setgrupo(grupo); boolean isupdate= evaluacionbo.modificarevaluacion(ev); if (isupdate){system.out.println("ok");} homecoming "";} public boolean iseditable() { homecoming editable; } public void seteditable(boolean editable) { this.editable = editable; } public string editaction(evaluacion evaluacion) { evaluacion.seteditable(true); homecoming null; } public void onrowedit(roweditevent event) { try{ this.modificarevaluacion(); facesmessage msg = new facesmessage("evaluacion modificada"); facescontext.getcurrentinstance().addmessage(null, msg); } grab (exception ex){ facesmessage msg = new facesmessage("error al modificar"); facescontext.getcurrentinstance().addmessage(null, msg); } }

*** service class evaluacionboimpl*****

public boolean modificarevaluacion(evaluacion evaluacion){ homecoming evaluaciondao.modificarevaluacion(evaluacion);}

dao class evaluaciondaoimpl

public class evaluaciondaoimpl extends hibernatedaosupport implements evaluaciondao,serializable{ public boolean modificarevaluacion(evaluacion evaluacion) { boolean isupdate=false; transaction trns = null; session session = gethibernatetemplate().getsessionfactory().opensession(); seek { trns = session.begintransaction(); query query=session.createquery("update evaluacion set nombre=:nom, fecha=:fe,grupo=:grupo_id evaluacionid=:evaluacionid"); query.setparameter("nom",evaluacion.getnombre()); query.setparameter("fe",evaluacion.getfecha()); query.setparameter("grupo_id",evaluacion.getgrupo().getgrupo_id()); query.setparameter("evaluacionid",evaluacion.getevaluacionid()); int row=query.executeupdate(); if (row==1) { isupdate=true;} /* session.update(evaluacion);*/ session.gettransaction().commit(); } grab (runtimeexception e) { if (trns != null) { trns.rollback(); } e.printstacktrace(); } { // session.flush(); session.close(); } homecoming isupdate; }

* view: page1.xhtml*

<h:body> <h:form> <p:messages id="messages" showdetail="true" autoupdate="true" closable="true" /> </h:form> <h:form id="form"> <p:growl id="msgs" showdetail="true"/> <p:datatable id="tablaevaluacion" value="#{evaluacion.listaevaluacion}" var= "p" border="1" editable="true" style="margin-bottom:20px"> <f:facet name="header"> evaluaciones </f:facet> <p:ajax event="rowedit" listener="#{evaluacion.onrowedit}" update=":form:msgs" /> <p:ajax event="roweditcancel" listener="#{dteditview.onrowcancel}" update=":form:msgs" /> <p:column headertext="id"> <p:celleditor> <f:facet name="output"><h:outputtext value="#{p.evaluacionid}" /></f:facet> <f:facet name="input"><p:inputtext id="modelinput" value="#{p.evaluacionid}" style="width:100%"/></f:facet> </p:celleditor> </p:column> <p:column headertext="nombre"> <p:celleditor> <f:facet name="output"><h:outputtext value="#{p.nombre}" /></f:facet> <f:facet name="input"> <p:inputtext value="#{p.nombre}" style="width:100%" label="nombre"/></f:facet> </p:celleditor> </p:column> <p:column headertext="fecha"> <p:celleditor> <f:facet name="output"><h:outputtext value="#{p.fecha}" /></f:facet> <f:facet name="input"> <p:inputtext value="#{p.fecha}" style="width:100%" label="fecha"/></f:facet> </p:celleditor> </p:column> <p:column headertext="grupo"> <p:celleditor> <f:facet name="output"><h:outputtext value="#{p.grupo.grupo_id}" /></f:facet> <f:facet name="input"><p:inputtext value="#{p.grupo.grupo_id}" style="width:100%" label="grupo"/></f:facet> </p:celleditor> </p:column> <p:column headertext="editar" style="width:32px"> <p:roweditor /> </p:column> <p:column headertext = "eliminar"> <p:growl id="message" showdetail="true" /> <h:outputlabel value="selecciona el numero de evaluacion:" for="txt_evid"></h:outputlabel> <p:inputtext id="txt_evid" value="#{evaluacion.evaluacionid}" required="true"/> <p:commandbutton actionlistener="#{evaluacion.eliminarevaluacion}" id="icononly" icon="ui-icon-trash" title="icon only" update="message"> <p:confirm header="eliminar evaluacion" message="¿esta seguro que desea eliminar la evaluacion?" icon="ui-icon-alert" /> </p:commandbutton> <p:confirmdialog global="true" > <p:commandbutton value="aceptar" type="button" styleclass="ui-confirmdialog-yes" icon="ui-icon-check" /> <p:commandbutton value="cancelar" type="button" styleclass="ui-confirmdialog-no" icon="ui-icon-close" /> </p:confirmdialog> </p:column> </p:datatable>

first of all, consider hibernate session live in application scope. changes done in temporary session til flushed in real database. seems missed commit or flush in transaction/hibernate session. then, when stop server, session dies , changes (not flushed or committed) lost.

regards.

hibernate jsf-2 primefaces

No comments:

Post a Comment