有人知道一个 EJB3 和 Mybatis 的例子,其中容器控制事务,我创建的代码的唯一部分是:
SQLMapConfig.xml
<transactionManager type="EXTERNAL">
<property name="SetAutoCommitAllowed" value="false"/>
<dataSource type="JNDI">
<property name="DataSource" value="java:comp/env/jdbc/sisds"/>
</dataSource>
</transactionManager>
但是我有很多问题,比如,
- 容器什么时候提交?
- 容器何时将 session 释放到池中?
提前致谢
最佳答案
容器根据 EJB 的配置方式提交事务。如果您使用的是 bean 管理的事务,那么您必须自己管理 UserTransaction
。
无论如何,你必须自己管理 MyBatis SqlSession。将 tx 类型设置为 EXTERNAL
(在 Mybatis 3 中为 MANAGED
),仅仅意味着 MyBatis 从不调用 DB 连接上的提交——它依赖于容器来提交。
关于java - EJB3 Mybatis和CMT的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942469/