hibernate的事务管理解决办法

hibernate的事务管理
是这样的。
在Service.function()下调用了dao1.insert1(),dao2.insert2()和dao3.insert3(),
dao1.insert1()方法逻辑为:获取当前hibernate的session,执行插入操作。
dao2.insert2(),dao3.insert3()与dao1.insert1()逻辑类似。

希望将dao1.insert1(),dao2.insert2()和dao3.insert3()的执行置于一个hibernate事务中提交,请问该如何处理?

------解决方案--------------------
是不是和spring集成了?如果是则可以用spring管理事务,很方便的
如果不是,则手动打开hibernate事务,把三个dao调用的方法放在事务中就行了
------解决方案--------------------
直接使用try catch finally方式控制事务,既然能拿到当前session,那控制事务就没有问题
try最后做commit,catch 里rollback,finally里关闭session。最好别用spring控制事务,会造成数据源死锁。如果非要自动控制,推荐你还是使用ejb3吧,jee的标准还是值得信赖的。我还用过guice jpa,也不错,不过不是官方标准。
------解决方案--------------------
spring控制事务很方便的,最好不要手动来控制事务。
------解决方案--------------------
楼上的  两位  说的 两种解决方案都可行。。。感觉 第一个简单点,第二个严密点,适合开发hibernate的事务管理解决办法