hibernate - Spring roo: Cannot update user data which was inserted by PhpMyAdmin -


i use spring roo build cms webapp.

this app of course, has user management function.

my problem if use phpmyadmin insert user information database , goto app modified thoes information, error orcur. (if insert user info app , edit app, works fine)

can of explain me why happend , how resolve it?

thank much.

addition info: error orcur user table, table (such news or product) has no problem. below few of code.

enduser.java (entity)

public class enduser {      @notnull     @size(min = 1, max = 20)     @column(name = "user_id", unique = true, nullable = false)     private string userid;      @column(name = "user_name")     private string name;      @notnull     @size(min = 1, max = 40)     @column(name = "password", nullable = false)     private string password;      @column(name = "first_name")     private string firstname;      @column(name = "last_name")     private string lastname;      @column(name = "gender")     private integer gender;      @column(name = "email")     private string email;      @column(name = "last_login")     @datetimeformat(style = "m-")     private date lastlogin;      @column(name = "created_date")     @datetimeformat(style = "m-")     private date createddate;      @column(name = "date_of_birth")     @datetimeformat(style = "m-")     private date dateofbirth;      @notnull     @column(name = "role")     private string role;      @column(name = "is_deleted")     private boolean isdeleted; } 

endusercontroller.java

@preauthorize("hasrole('role_super_admin')") @requestmapping(method = requestmethod.put, produces = "text/html") public string update(@valid enduser enduser, bindingresult bindingresult, model uimodel, httpservletrequest httpservletrequest) {     if (bindingresult.haserrors()) {         populateeditform(uimodel, enduser);         return "admin/user/update";     }      enduser.setisdeleted(false);      uimodel.asmap().clear();     enduser.merge();     return "redirect:/admin/user/" + encodeurlpathsegment(enduser.getid().tostring(), httpservletrequest); } 

if update user info inserted phpmyadmin, error orcur

2013-05-08 20:10:58,741 [http-8080-7] debug org.springframework.orm.jpa.jpatransactionmanager - found thread-bound entitymanager [org.hibernate.ejb.entitymanagerimpl@165f5a4] jpa transaction 2013-05-08 20:10:58,741 [http-8080-7] debug org.springframework.orm.jpa.jpatransactionmanager - creating new transaction name [vn.a2s.lib.db.model.enduser.merge]: propagation_required,isolation_default; '' 2013-05-08 20:10:58,741 [http-8080-7] debug org.springframework.orm.jpa.jpatransactionmanager - not exposing jpa transaction [org.hibernate.ejb.entitymanagerimpl@165f5a4] jdbc transaction because jpadialect [org.springframework.orm.jpa.defaultjpadialect@157f3a4] not support jdbc connection retrieval 2013-05-08 20:10:58,743 [http-8080-7] debug org.springframework.beans.factory.annotation.injectionmetadata - processing injected method of bean 'vn.a2s.lib.db.model.enduser': persistenceelement transient javax.persistence.entitymanager vn.a2s.lib.db.model.enduser.entitymanager 2013-05-08 20:10:58,743 [http-8080-7] debug org.springframework.beans.factory.support.defaultlistablebeanfactory - returning cached instance of singleton bean 'entitymanagerfactory' 2013-05-08 20:10:58,752 [http-8080-7] error org.hibernate.engine.jdbc.spi.sqlexceptionhelper - duplicate entry 'nghi' key 'user_id' 2013-05-08 20:10:58,752 [http-8080-7] error org.hibernate.engine.jdbc.spi.sqlexceptionhelper - duplicate entry 'nghi' key 'user_id' 2013-05-08 20:10:58,752 [http-8080-7] debug org.springframework.orm.jpa.jpatransactionmanager - initiating transaction rollback 2013-05-08 20:10:58,752 [http-8080-7] debug org.springframework.orm.jpa.jpatransactionmanager - rolling jpa transaction on entitymanager [org.hibernate.ejb.entitymanagerimpl@165f5a4] 2013-05-08 20:10:58,753 [http-8080-7] debug org.springframework.orm.jpa.jpatransactionmanager - not closing pre-bound jpa entitymanager after transaction 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.mvc.method.annotation.exceptionhandlerexceptionresolver - resolving exception handler [public java.lang.string vn.a2s.sparepart.web.admin.endusercontroller.update(vn.a2s.lib.db.model.enduser,org.springframework.validation.bindingresult,org.springframework.ui.model,javax.servlet.http.httpservletrequest)]: org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'; nested exception javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id' 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.mvc.annotation.responsestatusexceptionresolver - resolving exception handler [public java.lang.string vn.a2s.sparepart.web.admin.endusercontroller.update(vn.a2s.lib.db.model.enduser,org.springframework.validation.bindingresult,org.springframework.ui.model,javax.servlet.http.httpservletrequest)]: org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'; nested exception javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id' 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.mvc.support.defaulthandlerexceptionresolver - resolving exception handler [public java.lang.string vn.a2s.sparepart.web.admin.endusercontroller.update(vn.a2s.lib.db.model.enduser,org.springframework.validation.bindingresult,org.springframework.ui.model,javax.servlet.http.httpservletrequest)]: org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'; nested exception javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id' 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.handler.simplemappingexceptionresolver - resolving exception handler [public java.lang.string vn.a2s.sparepart.web.admin.endusercontroller.update(vn.a2s.lib.db.model.enduser,org.springframework.validation.bindingresult,org.springframework.ui.model,javax.servlet.http.httpservletrequest)]: org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'; nested exception javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id' 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.handler.simplemappingexceptionresolver - resolving view 'dataaccessfailure' exception of type [org.springframework.orm.jpa.jpasystemexception], based on exception mapping [.dataaccessexception] 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.handler.simplemappingexceptionresolver - exposing exception model attribute 'exception' 2013-05-08 20:10:58,754 [http-8080-7] debug org.springframework.web.servlet.dispatcherservlet - handler execution resulted in exception - forwarding resolved error view: modelandview: reference view name 'dataaccessfailure'; model {exception=org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'; nested exception javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'} org.springframework.orm.jpa.jpasystemexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'; nested exception javax.persistence.persistenceexception: org.hibernate.exception.constraintviolationexception: duplicate entry 'nghi' key 'user_id'     @ org.springframework.orm.jpa.entitymanagerfactoryutils.convertjpaaccessexceptionifpossible(entitymanagerfactoryutils.java:318)     @ org.springframework.orm.jpa.aspectj.jpaexceptiontranslatoraspect.ajc$afterthrowing$org_springframework_orm_jpa_aspectj_jpaexceptiontranslatoraspect$1$18a1ac9(jpaexceptiontranslatoraspect.aj:15)     @ vn.a2s.lib.db.model.enduser_roo_jpa_activerecord.ajc$intermethod$vn_a2s_lib_db_model_enduser_roo_jpa_activerecord$vn_a2s_lib_db_model_enduser$merge(enduser_roo_jpa_activerecord.aj:72)     @ vn.a2s.lib.db.model.enduser.merge(enduser.java:1)     @ vn.a2s.lib.db.model.enduser_roo_jpa_activerecord.ajc$intermethoddispatch1$vn_a2s_lib_db_model_enduser_roo_jpa_activerecord$vn_a2s_lib_db_model_enduser$merge(enduser_roo_jpa_activerecord.aj)     @ vn.a2s.sparepart.web.admin.endusercontroller.update(endusercontroller.java:87)     @ vn.a2s.sparepart.web.admin.endusercontroller$$fastclassbycglib$$ed0ea343.invoke(<generated>)     @ org.springframework.cglib.proxy.methodproxy.invoke(methodproxy.java:204)     @ org.springframework.aop.framework.cglibaopproxy$cglibmethodinvocation.invokejoinpoint(cglibaopproxy.java:698)     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:150)     @ org.springframework.security.access.intercept.aopalliance.methodsecurityinterceptor.invoke(methodsecurityinterceptor.java:61)     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:172)     @ org.springframework.aop.framework.cglibaopproxy$dynamicadvisedinterceptor.intercept(cglibaopproxy.java:631)     @ vn.a2s.sparepart.web.admin.endusercontroller$$enhancerbycglib$$48aaf78c.update(<generated>)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ org.springframework.web.method.support.invocablehandlermethod.invoke(invocablehandlermethod.java:219)     @ org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:132)     @ org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:104)     @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlemethod(requestmappinghandleradapter.java:746)     @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:687)     @ org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:80)     @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:925)     @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:856)     @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:915)     @ org.springframework.web.servlet.frameworkservlet.doput(frameworkservlet.java:833)     @ javax.servlet.http.httpservlet.service(httpservlet.java:640)     @ org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:796)     @ javax.servlet.http.httpservlet.service(httpservlet.java:717)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)     @ org.springframework.orm.jpa.support.openentitymanagerinviewfilter.dofilterinternal(openentitymanagerinviewfilter.java:180)     @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:311)     @ org.springframework.security.web.access.intercept.filtersecurityinterceptor.invoke(filtersecurityinterceptor.java:116)     @ org.springframework.security.web.access.intercept.filtersecurityinterceptor.dofilter(filtersecurityinterceptor.java:83)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.access.exceptiontranslationfilter.dofilter(exceptiontranslationfilter.java:113)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.session.sessionmanagementfilter.dofilter(sessionmanagementfilter.java:101)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.authentication.anonymousauthenticationfilter.dofilter(anonymousauthenticationfilter.java:113)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.servletapi.securitycontextholderawarerequestfilter.dofilter(securitycontextholderawarerequestfilter.java:54)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.savedrequest.requestcacheawarefilter.dofilter(requestcacheawarefilter.java:45)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.authentication.www.basicauthenticationfilter.dofilter(basicauthenticationfilter.java:150)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.authentication.abstractauthenticationprocessingfilter.dofilter(abstractauthenticationprocessingfilter.java:182)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.authentication.logout.logoutfilter.dofilter(logoutfilter.java:105)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.context.securitycontextpersistencefilter.dofilter(securitycontextpersistencefilter.java:87)     @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:323)     @ org.springframework.security.web.filterchainproxy.dofilter(filterchainproxy.java:173)     @ org.springframework.web.filter.delegatingfilterproxy.invokedelegate(delegatingfilterproxy.java:346)     @ org.springframework.web.filter.delegatingfilterproxy.dofilter(delegatingfilterproxy.java:259)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)     @ org.springframework.web.filter.hiddenhttpmethodfilter.dofilterinternal(hiddenhttpmethodfilter.java:74)     @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)     @ org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88)     @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)     @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233)     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191)     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:127)     @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102)     @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)     @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:298)     @ org.apache.coyote.http11.http11processor.process(http11processor.java:852)     @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:588)     @ org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:489)     @ java.lang.thread.run(unknown source) 

hibernate, out of box, setup in such way not support modifying tables directly. because hibernate caching entities between reads/writes. if request same object on , over, hibernate, if it's doing it's job correctly, should reading object once, doing updates cache, , writing object when cache expires.

if modify db behind hibernate, items in cache not match in db. there way turn off in hibernate, has performance implications. unfortunately, it's been quite time since had in hibernate, how go doing not 100% sure. may have spend time googling it.


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -