These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: No error, no exception but still NO UPDATE
PostPosted: Tue Jun 24, 2008 8:34 am 
Newbie

Joined: Fri Jun 20, 2008 6:23 am
Posts: 6
I do my update like:

Code:
User dbuser=(User)session.load(User.class, tempuser.getPortaluserid());
                    dbuser=(User)session.merge(tempuser);
                    session.update(dbuser);
                    tx.commit();
                    session.close();


Where tempuser is user object that I get from spring controler when I submit the form.

I dont get any error, no exception but I still dont get values updated.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 24, 2008 9:00 am 
Beginner
Beginner

Joined: Wed Jun 11, 2008 4:43 am
Posts: 20
I'm not an expert but I do not understand why you call update and merge.
If I'm right, update is used to reattach an object to a new session if the object does not exist in the session. And merge is to reattach an object to a new session if the object already exists in the session.

What SQL statement does Hibernate generate (put show_sql to true in your configuration)?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 24, 2008 9:54 am 
Expert
Expert

Joined: Tue May 13, 2008 3:42 pm
Posts: 919
Location: Toronto & Ajax Ontario www.hibernatemadeeasy.com
In fact, since the object is associated with the Hibernate Session on the load, you don't even need to call the update method.

What if instead of doing a merge, you just copied the properties from the temp user to the loaded user? See if that works. The update shouldn't be needed.

For a better understanding of when you need to call merge and when you need to call update, check out this tutorial on How Hibernate Works:

http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=07howhibernateworks

_________________
Cameron McKenzie - Author of "Hibernate Made Easy" and "What is WebSphere?"
http://www.TheBookOnHibernate.com Check out my 'easy to follow' Hibernate & JPA Tutorials


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 26, 2008 4:53 am 
Newbie

Joined: Fri Jun 20, 2008 6:23 am
Posts: 6
Well I tried now with only this:

Code:
User dbuser=(User)session.load(User.class, tempuser.getPortaluserid());
                    dbuser.setName(tempuser.getName());
                    dbuser.setSurname(tempuser.getSurname());
                    session.flush();
                    session.getTransaction().commit();


And I still get this error:


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.Exception: Controller: UserController threw exception: Could not execute JDBC batch update
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:488)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.lang.Exception: Controller: UserController threw exception: Could not execute JDBC batch update
ChainedController.handleRequestSequentially(ChainedController.java:128)
ChainedController.handleRequest(ChainedController.java:67)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
UserController.handle(UserController.java:84)
org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
ChainedController.handleRequestSequentially(ChainedController.java:119)
ChainedController.handleRequest(ChainedController.java:67)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.sql.BatchUpdateException: Batch entry 0 update public.portaluser set [email protected], name=Matjaz, surname=Muhic, username=matjaz, password=123123123123, confirmid=confirmed, age=0, sex=changethis, country=changethis, city=changethis, photourl=changethis, phonetype=changethis, dateofbirth=1986-03-08 +01:00:00, blocked=no, lastlogin=2008-06-20 +02:00:00, phonenum=0 where portaluserid=13213216513535 was aborted. Call getNextException to see the cause.
org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2537)
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1328)
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:351)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2674)
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
UserController.handle(UserController.java:84)
org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
ChainedController.handleRequestSequentially(ChainedController.java:119)
ChainedController.handleRequest(ChainedController.java:67)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
[/quote]


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 26, 2008 4:55 am 
Newbie

Joined: Fri Jun 20, 2008 6:23 am
Posts: 6
Sorry, double post.

Problem solved.

I had one variable defined as text in database and in class it was defined as long.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.