- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有人使用 iBATIS 3 作为 EJB 容器内的持久性框架?我最近开始构建一个新系统,我选择 EJB 3.1(EJB 的版本实际上与这个问题无关)作为我的应用程序框架和 iBATIS 3(这个版本是相关的!)作为我的持久性框架。我的业务逻辑是在使用 iBATIS 3 进行数据访问的 EJB 3.1 session bean 中实现的。我在 GlassFish v3 上运行)
我对这个堆栈的问题是事务管理。我已经通过编写一些简单的集成代码解决了我的问题,但我对必须这样做并不感到惊讶。所以我决定发布这个,看看其他人是否遇到过这个问题,如果有,他们是如何解决这个问题的。
我的要求是让 iBATIS 3 在 session bean 方法中透明地使用 EJB 事务(通常以声明方式定义)。 iBATIS 3 提供了 2 个事务工厂 JdbcTransactionFactory 和 ManagedTransactionFactory,我发现它们都不能在 EJB 环境中正常工作(查看 iBATIS 源代码很清楚它失败的原因)。
JdbcTransactionFactory 不合适,因为我希望忽略对 sqlSession.commit() 或 sqlSession.rollback() 的任何调用。所以我想我应该使用 ManagedTransactionFactory 因为它确实会导致对 sqlSession.commit() 或 sqlSession.rollback() 的任何调用被忽略,但是它也会导致 sqlSession.close() 不关闭 iBATIS 从sqlSession.open() 中的数据源(数据源是我提供给 iBATIS 的容器管理的数据源对象)。这会导致 GlassFish 耗尽其连接池并且应用程序失败。
所以我写了一个新的 TransactionFactory 实现,EJBTransactionFactory,它导致 sqlSession.commit() 或 sqlSession.rollback() 什么也不做,但是 关闭 调用 sqlSession.close() 时的连接。
我怀疑其他人也遇到过这个问题,你是怎么解决的?
最佳答案
关于transactions - EJB (3.1) 容器内 iBATIS 3 中的事务管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663714/
有谁知道当省略了flushInterval时iBATIS cacheModel的行为是什么,比如说缓存类型是MEMORY?我希望它只是将缓存结果无限期地保留在内存中。我有一组结果,如果不重新启动服务器
我需要一个解决方案来取消长时间运行的选择语句。我正在使用 Spring 3.0.2、iBatis 2.3.0 和 Oracle 10g。我设法让它与普通 JDBC 一起工作,但是因为选择是通过高级搜索
我有两个表的数据库 post: id post_name post_desc files: file_id file_name pos
Spring4.2.0不支持ibatis。我的项目正在从 Spring 3.2.4 升级到 Spring 4.2。当我用谷歌搜索时,我发现 spring4.2 与 mybatis 的集成示例,但没有与
根据用户指南,我可以使用文件路径而不是资源: // Using classpath relative resources // Using url fully qualified pat
我有一个 iBatis 查询,例如 但是像 lowerLimit、upperLimit、maxLowerLimit、maxUpperLimit 和 state 这样的字段可能为 null,
我写了一个查询:- select userid,endpointarns from t_user_actives where sid=#{sid} and (userid i
我在 weblogic 10.3.6 中使用 spring 3.2.0 和 ibatis 2.3.4在 weblogic 中部署时。 我收到此 NoSuchMethodError 如下: User d
假设我有一个查询 getUser有两个参数 - 用户名和密码。我想要一个像这样的映射器方法: public UserBean getUser(String userName, String passw
我在生产应用程序中使用的是iBatis-2.3.4.726。我想迁移生产应用程序以使用MyBatis。 在迁移过程中我需要考虑哪些要点? 是否有任何配置更改,或者MyBatis支持iBatis配置作为
我试图将startSequenceId,stopSequenceId和orderNumber传递到SQL映射中,但是,我不想使用类型化的对象,即parameterType="com.abc.Order
要删除的字符串ID为 复制代码代码如下: string SDSALES_IDString = 1,2,3,4,5,6,7 //转成Array Array a
我目前正在使用 ibatis 返回一些 pojo,一切都很好。 我的问题是: 我必须从表中返回 1 行,就像 3 个字段一样,我不想为它创建一个 pojo。我只想运行查询并获取 3 个值。有没有简单的
我在 iBatis 中有几个嵌套的 ResultMaps,它们具有完全相同的数据库列名。这会导致歧义,并导致为不同的数据库表检索到不正确的结果。 例如,`
现有代码库的 Java 升级和 Wildfly 升级已完成。在具有 Wildfly 服务器的 Windows 上,应用程序已正确部署。在具有 Wildfly 服务器的 Unix 上,应用程序部署失败,
我在 MyBatis v3 映射器 xml 中动态生成 where 子句。不过加括号确实很麻烦。有没有更简单的方法来处理这个问题而不使用 if 语句?
我现在的处境很复杂。我需要向 iBATIS select 传递三个参数,其中 2 个是 String ,1 个是 List 。 列表看起来像: List userList=new List(); pu
我有一个 select 语句,它返回相同数据类型 (VARCHAR) 的值列表。结果介于 1 到 6 行之间。我使用 queryForList() 并将响应存储在 List 对象中。执行时出现错误 -
谁能告诉我这是怎么回事?我有两个程序和两个映射。一个工作正常,另一个失败。这个工作正常:
在我的项目中,我们使用springmvc、spring和ibatis框架,问题是:在我的 dao 代码中是: @Override public Integer insertAdzoneEnvInfoB
我是一名优秀的程序员,十分优秀!