Quote:
Simply doing a select causes hibernate to create a short auto committed transaction"?
Of course, because there is simply no way to talk to a database "outside" or "wihtout" a database transaction at the lower level. The JDBC connection Hibernate obtains will be in whatever mode it is by default. (Actually, the behavior is pretty much undefined if you do not enable auto commit handling in the Hibernate configuration, in that case.)
And yes, the auto-commit mode is evil and confusing.
Just use these Session/transaction handling patterns for all units of work and do not use auto-commit mode.
http://hibernate.org/42.html
I have explained this again in much much more detail (it is not really a Hibernate thing) in the book Java Persistence with Hibernate, which you can subscribe to at
http://www.manning.com