Hibernate transaction advice
In general, you should never handle transactions in dao code, as you never know where the transaction boundary is. You should let whoever wants to control the transactions control them.

Code that starts and commits a transaction in every dao method is likely to be problematic.

Btw: not very keen at all on 'dao' but as you use it, so will i.