This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Hi I am new to hibernate, I was trying out some code, nothing gets written to the database. However if I surround my code inside begintransaction and commit, it works fine. So my question is, should most operations be done inside transaction? Or when should the transaction be used?
The word transaction can be literally defined as a "unit of work." Is connecting to a database, querying its data, and getting back some information work? I'm sure the database would think so.
So yes, you always need a transaction. You are always doing work.
Now, when we think of transactions, we often think of the ACID properties of a transaction, and rolling things back, and commits, and stuff like that, and you certainly don't need all that with a read, or something simple, but that doesn't mean you're not transacting with the database.
So yes, you always need a transaction.
A person named Christian Bauer, someone who might know a little bit about Hibernate, wrote this about your very question:
I did a training two weeks ago and all 12 people said "No" when I asked "are database transactions mandatory?". We have a long way...