Win a copy of Android Programming: The Big Nerd Ranch Guide this week in the Android forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Optimistic concurrency in hibernate using version/timestamp.  RSS feed

 
sharath kumar reddy karnati
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I didn't understand how optimistic concurrency will work in hibernate?

As per my knowledge, we need to have either VERSION or TIMESTAMP column in persistence table which is mappend to hibernate.

Say we are having TIMESTAMP column then whenever we execute INSERT,UPDATE statement hibernate will modify TIMESTAMP column with system timestamp. When we try to update a row and that row timestamp is differenent from the existing row timestamp then it determines as stale data and it will through the error message.

Please correct me if I'm wrong and also provide some example too.

Thanks in advance.

Sharath.
 
Prakhyat madgunaki
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Below is a simple code, which will depict how optimistic locking/(concurrency control) will be done by hibernate.

// foo is an instance loaded by a previous Session
session = factory.openSession();
int oldVersion = foo.getVersion();
session.load( foo, foo.getKey() );

if ( oldVersion!=foo.getVersion )
throw new StaleObjectStateException();

foo.setProperty(“bar”);
session.flush();
session.connection().commit();
session.close();
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!