java - EJB3 Mybatis和CMT的例子

标签 java transactions ejb-3.0 ibatis mybatis

有人知道一个 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> 

但是我有很多问题,比如,

  1. 容器什么时候提交?
  2. 容器何时将 session 释放到池中?

提前致谢

最佳答案

容器根据 EJB 的配置方式提交事务。如果您使用的是 bean 管理的事务,那么您必须自己管理 UserTransaction

无论如何,你必须自己管理 MyBatis SqlSession。将 tx 类型设置为 EXTERNAL(在 Mybatis 3 中为 MANAGED),仅仅意味着 MyBatis 从不调用 DB 连接上的提交——它依赖于容器来提交。

关于java - EJB3 Mybatis和CMT的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942469/

相关文章:

java - 如何使用 codehaus.jackson 获取 POJOS 列表的 JSON 数组表示形式

ejb-3.0 - 我从设置这个 TransactionAttributeType.NOT_SUPPORTED 得到什么

JAVA:将输入存储到数组中

c# - 远离数据库实现事务有什么缺点?

sql - 为什么 SQL 数据库在命令日志上使用预写日志?

java - Hibernate 的 Session.close() 是否自动回滚未提交的事务?

java - 调用EJB方法时出现NullPointerException

java - 我可以将 EJB 中的所有异常作为自定义未经检查的异常抛出吗?

java - 有Commons所有子串函数吗?

java - HandlerThread 中的消息丢失