你好,banq,请教一个EJB+HIBERNATE的事务管理 2006-07-05 xysniper 你好,如果用CMP+HIBERNATE时,因为CMP和HIBERNATE都有事务,当在CMP里调用HIBERNATE时(不管是直接调用,还是通过DOM层再调),请问此时,事务是谁的? 如果是EJB的话,EJB是怎么样把HIBERNATE的事务屏蔽掉的?如果HIBERNATE 更新出错时,EJB容器是不是就会自动检测到DAO出错了,然后ROLLBACK当前DAO的操作呢? 多谢
banq 2006-07-12 14:09 >然可以并存,那DAO中的数据库操作是谁的事务来控制。搞清楚事务不是由hibernate或EJB产生的,而是本身就存在,事务分JDBC事务和JTA事务,EJB的session bean用的是JTA事务,属于声明式使用,和Spring一样。 只要Session Bean中抛出EJBException,就可实现事务。 你的问题原理涉及嵌套事务,可参考这方面书籍。