java - org.hibernate.PersistentObjectException: uninitialized proxy passed to persist() -
when try save user object during registration following error
userservice
> @service public class userserviceimpl implements userservice { > > @autowired > private userrepository userrepository; > > @autowired > private rolerepository rolerepository; > > @autowired > private bcryptpasswordencoder bcryptpasswordencoder; > > > @override > public void save(user user) { > user.setpassword(bcryptpasswordencoder.encode(user.getpassword())); > set<role> roles; > roles = new hashset<role>(); > roles.add(rolerepository.getone(1l)); > user.setroles(roles); > userrepository.save(user); > userrepository.flush(); > > } > > @override > public user findbyusername(string username) { > return userrepository.findbyusername(username); > } }
class user:
> @entity > @table(name = "users") public class user { > > @id > @generatedvalue(strategy = generationtype.auto) > private long id; > > @column(name = "username") > private string username; > > @column(name = "password") > private string password; > > @transient > private string confirmpassword; > > @manytomany(fetch = fetchtype.lazy, cascade = cascadetype.all) > @jointable(name = "user_roles", joincolumns = @joincolumn(name = "user_id"), > inversejoincolumns = @joincolumn(name = "role_id")) > @jsonignore > private set<role> roles; > > public long getid() { > return id; > } > > public void setid(long id) { > this.id = id; > } > > public string getusername() { > return username; > } > > public void setusername(string username) { > this.username = username; > } > > public string getpassword() { > return password; > } > > public void setpassword(string password) { > this.password = password; > } > > public string getconfirmpassword() { > return confirmpassword; > } > > public void setconfirmpassword(string confirmpassword) { > this.confirmpassword = confirmpassword; > } > > public set<role> getroles() { > return roles; > } > > public void setroles(set<role> roles) { > this.roles = roles; > } > public user(){} > public user(string name, string pass) { > username = name; > password = pass; > } }
dataconfig:
> @configuration @enabletransactionmanagement @propertysource(value = > {"classpath:hibernate.properties"}) > @enablejparepositories("com.sergey.repository") public class > dataconfig { > @autowired > private environment environment; > > @bean > public datasource datasource() { > drivermanagerdatasource datasource = new drivermanagerdatasource(); > datasource.setdriverclassname(environment.getrequiredproperty("jdbc.driverclassname")); > datasource.seturl(environment.getrequiredproperty("jdbc.url")); > datasource.setusername(environment.getrequiredproperty("jdbc.username")); > datasource.setpassword(environment.getrequiredproperty("jdbc.password")); > return datasource; > } > > @bean > public localsessionfactorybean sessionfactory() { > localsessionfactorybean sessionfactory = new localsessionfactorybean(); > sessionfactory.setdatasource(datasource()); > sessionfactory.setpackagestoscan("com.sergey.entity"); > sessionfactory.sethibernateproperties(hibernateproperties()); > > return sessionfactory; > } > > private properties hibernateproperties() { > properties properties = new properties(); > properties.put("hibernate.dialect", environment.getrequiredproperty("hibernate.dialect")); > properties.put("show_sql", environment.getrequiredproperty("hibernate.show_sql")); > properties.put("hibernate.hbm2ddl.auto", environment.getrequiredproperty("hibernate.hbm2ddl.auto")); > return properties; > } > > @bean > public persistenceexceptiontranslationpostprocessor exceptiontranslation() { > return new persistenceexceptiontranslationpostprocessor(); > } > > @bean > public localcontainerentitymanagerfactorybean entitymanagerfactory() { > localcontainerentitymanagerfactorybean emfb = new localcontainerentitymanagerfactorybean(); > emfb.setdatasource(datasource()); > emfb.setpackagestoscan("com.sergey.entity"); > emfb.setjpavendoradapter(jpavendoradapter()); > emfb.setjpaproperties(hibernateproperties()); > return emfb; > } > > @bean > public jpavendoradapter jpavendoradapter() { > return new hibernatejpavendoradapter(); > } > > @bean > @autowired > public platformtransactionmanager transactionmanager(entitymanagerfactory emf) { > jpatransactionmanager transactionmanager = new jpatransactionmanager(); > transactionmanager.setentitymanagerfactory(emf); > return transactionmanager; > } }
userrepositoty:
> public interface userrepository extends jparepository<user, long> { > user findbyusername(string username); }
usercontroller:
> public class userscontroller { > > @autowired > private userservice userservice; > > @autowired > private securityservice securityservice; > > @autowired > private uservalidator uservalidator; > > @requestmapping(value = "/registration", method = requestmethod.get) > public string registration(model model) { > model.addattribute("userform", new user()); > > return "registration"; > } > > @requestmapping(value = "/registration", method = requestmethod.post) > public string registration(@modelattribute("userform") user userform, bindingresult bindingresult, model model) { > uservalidator.validate(userform, bindingresult); > > if (bindingresult.haserrors()) { > return "registration"; > } > > userservice.save(userform); > > securityservice.autologin(userform.getusername(), userform.getconfirmpassword()); > > return "redirect:/welcome"; > } > > @requestmapping(value = "/login", method = requestmethod.get) > public string login(model model, string error, string logout) { > if (error != null) { > model.addattribute("error", "username or password incorrect."); > } > > if (logout != null) { > model.addattribute("message", "logged out successfully."); > } > > return "login"; > } > > @requestmapping(value = {"/", "/welcome"}, method = requestmethod.get) > public string welcome(model model) { > return "welcome"; > } > > @requestmapping(value = "/admin", method = requestmethod.get) > public string admin(model model) { > return "admin"; > } }
jsp:
> <div class="container"> > > <form:form method="post" modelattribute="userform" class="form-signin"> > <h2 class="form-signin-heading">create account</h2> > <spring:bind path="username"> > <div class="form-group ${status.error ? 'has-error' : ''}"> > <form:input type="text" path="username" class="form-control" placeholder="username" > autofocus="true"></form:input> > <form:errors path="username"></form:errors> > </div> > </spring:bind> > > <spring:bind path="password"> > <div class="form-group ${status.error ? 'has-error' : ''}"> > <form:input type="password" path="password" class="form-control" placeholder="password"></form:input> > <form:errors path="password"></form:errors> > </div> > </spring:bind> > > <spring:bind path="confirmpassword"> > <div class="form-group ${status.error ? 'has-error' : ''}"> > <form:input type="password" path="confirmpassword" class="form-control" > placeholder="confirm password"></form:input> > <form:errors path="confirmpassword"></form:errors> > </div> > </spring:bind> > > <button class="btn btn-lg btn-primary btn-block" type="submit">submit</button> > </form:form> > > </div>
error, add users:
org.springframework.dao.invaliddataaccessapiusageexception: uninitialized proxy passed persist(); nested exception org.hibernate.persistentobjectexception: uninitialized proxy passed persist() org.springframework.orm.hibernate5.sessionfactoryutils.converthibernateaccessexception(sessionfactoryutils.java:265) org.springframework.orm.hibernate5.hibernateexceptiontranslator.converthibernateaccessexception(hibernateexceptiontranslator.java:65) org.springframework.orm.hibernate5.hibernateexceptiontranslator.translateexceptionifpossible(hibernateexceptiontranslator.java:52) org.springframework.dao.support.chainedpersistenceexceptiontranslator.translateexceptionifpossible(chainedpersistenceexceptiontranslator.java:59) org.springframework.dao.support.dataaccessutils.translateifnecessary(dataaccessutils.java:213) org.springframework.dao.support.persistenceexceptiontranslationinterceptor.invoke(persistenceexceptiontranslationinterceptor.java:147) org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) org.springframework.data.jpa.repository.support.crudmethodmetadatapostprocessor$crudmethodmetadatapopulatingmethodinterceptor.invoke(crudmethodmetadatapostprocessor.java:133) org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) org.springframework.aop.interceptor.exposeinvocationinterceptor.invoke(exposeinvocationinterceptor.java:92) org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) org.springframework.aop.framework.jdkdynamicaopproxy.invoke(jdkdynamicaopproxy.java:213) com.sun.proxy.$proxy47.save(unknown source) com.sergey.service.impl.userserviceimpl.save(userserviceimpl.java:35) com.sergey.controller.userscontroller.registration(userscontroller.java:42) 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.doinvoke(invocablehandlermethod.java:221) org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:136) org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:114) org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlermethod(requestmappinghandleradapter.java:827) org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:738) org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:85) org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:963) org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:897) org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:970) org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:872) javax.servlet.http.httpservlet.service(httpservlet.java:650) org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:846) javax.servlet.http.httpservlet.service(httpservlet.java:731) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:197) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:52) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:316) org.springframework.security.web.access.intercept.filtersecurityinterceptor.invoke(filtersecurityinterceptor.java:126) org.springframework.security.web.access.intercept.filtersecurityinterceptor.dofilter(filtersecurityinterceptor.java:90) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.access.exceptiontranslationfilter.dofilter(exceptiontranslationfilter.java:114) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.session.sessionmanagementfilter.dofilter(sessionmanagementfilter.java:122) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.authentication.anonymousauthenticationfilter.dofilter(anonymousauthenticationfilter.java:111) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.servletapi.securitycontextholderawarerequestfilter.dofilter(securitycontextholderawarerequestfilter.java:169) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.savedrequest.requestcacheawarefilter.dofilter(requestcacheawarefilter.java:48) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.authentication.ui.defaultloginpagegeneratingfilter.dofilter(defaultloginpagegeneratingfilter.java:162) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.authentication.abstractauthenticationprocessingfilter.dofilter(abstractauthenticationprocessingfilter.java:205) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.authentication.logout.logoutfilter.dofilter(logoutfilter.java:120) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.header.headerwriterfilter.dofilterinternal(headerwriterfilter.java:64) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.context.securitycontextpersistencefilter.dofilter(securitycontextpersistencefilter.java:91) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.context.request.async.webasyncmanagerintegrationfilter.dofilterinternal(webasyncmanagerintegrationfilter.java:53) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:330) org.springframework.security.web.filterchainproxy.dofilterinternal(filterchainproxy.java:213) org.springframework.security.web.filterchainproxy.dofilter(filterchainproxy.java:176) org.springframework.web.filter.delegatingfilterproxy.invokedelegate(delegatingfilterproxy.java:346) org.springframework.web.filter.delegatingfilterproxy.dofilter(delegatingfilterproxy.java:262)
what reason execption??
try adding openentitymanagerinviewfilter spring in web.xml
<filter> <filter-name>hibernatefilter</filter-name> <filter-class> org.springframework.orm.jpa.support.openentitymanagerinviewfilter</filter-class> <init-param> <param-name>entitymanagerfactorybeanname</param-name> <param-value>entitymanagerfactory</param-value> </init-param> </filter> <filter-mapping> <filter-name>hibernatefilter</filter-name> <url-pattern>/services/*</url-pattern> </filter-mapping>
Java - Org.Hibernate.Persistentobjectexception: Uninitialized Proxy
ReplyDeletePassed To Persist() - >>>>> Download Now
>>>>> Download Full
Java - Org.Hibernate.Persistentobjectexception: Uninitialized Proxy
Passed To Persist() - >>>>> Download LINK
>>>>> Download Now
Java - Org.Hibernate.Persistentobjectexception: Uninitialized Proxy
Passed To Persist() - >>>>> Download Full
>>>>> Download LINK eI