0

我的应用程序使用了 Spring MVC+iBatis+JBoss7+MySQL。我在 mySQL 中有一个存储过程,将它映射到我的 iBatis mapper.xml 文件中,并通过我的 DAO 中的 sqlMapClient 调用它。如果我在 dao 方法工作正常后执行它,但是如果我使用不同的存储过程参数对同一方法执行两次调用(参数更改意味着存储过程中结果列的更改),我会得到一个异常,说我的 sql格拉默是错的。查看日志我发现 iBatis 正在尝试将我的第一个查询列(我的初始方法调用的结果)映射到我的结果映射。我什至尝试打印我的 dao 类实例的哈希码,它们是不同的。当从 DB 客户端(如 DbVislaulizer)尝试执行过程时,为什么会发生这种情况

有关信息,我在 mapper.xml 中使用 HashMap 作为结果类。这会在我的 dao 中返回一个linkedhashmaps 列表。

任何帮助都会非常方便。

提前致谢

4

1 回答 1

0

修复。必须在 mapper.xml 中设置属性 remapResults="true"

例如

选择 id="myReport" parameterClass="Map" resultClass="java.util.LinkedHashMap" remapResults="true"

于 2013-01-18T06:37:52.313 回答