wood burning stoves 2.0*
The moose likes Object Relational Mapping and the fly likes Hibernate should hit db every single time Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "Hibernate should hit db every single time" Watch "Hibernate should hit db every single time" New topic
Author

Hibernate should hit db every single time

Simon Ship
Greenhorn

Joined: Apr 20, 2005
Posts: 2
Hi,

My application has web services component which updates the database. I am using Hibernate 2.1 to retrieve the data from the database.

The sequence of event is like this.

1) Retrieve a record from a table using Hibernate.
2) Using web service the record is updated.
3) The application performs the query again. The stale value is returned by the hibernate.

I'm sure there must be some way to tell Hibernate that it doesn't have full control over the database and should go to the DB for every single query.

How do I solve this problem.

Thanks.
/Simon
Sujatha Kumar
Ranch Hand

Joined: Jan 05, 2004
Posts: 134
Hi Simon,

How about trying with lazy="true".
It will load the records lazily upon request.


SCJP,SCWCD,SCBCD,SCEA Part I
Simon Ship
Greenhorn

Joined: Apr 20, 2005
Posts: 2
Using lazy feature will only make sure that the associated classes will be loaded only when it's needed.

My question still remains same. Let's say that a record is lazily loded. Web service updates the record. You query for the record, the stale record will show up because Hibernate is not aware that some other system has changed the record behind-the-scene.

/simon
David Harkness
Ranch Hand

Joined: Aug 07, 2003
Posts: 1646
Normally you'd open a new Session for each application transaction. Since each Session starts empty, Hibernate would hit the database again. Of course, if you're using a second level cache, you'd still need to address that. If you want to reuse the Session, you could evict() the object before loading it. I'm not sure if this affects the second level cache, though.
 
Consider Paul's rocket mass heater.
 
subject: Hibernate should hit db every single time
 
Similar Threads
locking and unlocking mechanism
Hibernate query cache issue
Stateless web service and caching
Row counts with Hibernate Criteria
Does an ORM framework exist for JAVA that generates SQL so you only ever deal with Objects?