ibatis动态生成列时的列名无效

简介:
iBatis会自动缓存每条查询语句的列名映射,所有如果你动态生成列名的话就有可能造成查询列名无效的问题
同一条SQL语句先被queryforpage()调用,SQL语句被拦截套上了分页语法。此时rn列名被缓存。之后你又使用queryforlist()方法执行查询。此时SQL语句不被拦截拼分页语法,此时便报出rn列名无效。解决办法是在SQL语句上加一个属性(remapResults)配置让每次执行都重新映射列名。注:仅在可能被queryforpage()和queryforlist()都调用的SQL语句上加此属性。(以牺牲性能为代价,损耗很小很小)。如下所示:
<selectid="sql_Sel_Mp_Design"parameterClass="map"resultClass="dto"remapResults="true">

</select>




本文转自 winters1224 51CTO博客,原文链接:http://blog.51cto.com/winters1224/797836,如需转载请自行联系原作者

相关文章
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
521 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
7月前
|
SQL 缓存
IBATIS别名SELECT(缓存字段)引起的问题(动态sql)
IBATIS别名SELECT(缓存字段)引起的问题(动态sql)
|
SQL Java 数据库连接
Mybatis sql参数自动填充
简述idea插件实现Mybatis sql参数自动填充
|
SQL Java 数据库连接
MyBatis映射配置文件结构、标签详解及SQL语句中参数的获取
MyBatis映射配置文件结构、标签详解及SQL语句中参数的获取
241 0
|
SQL Java 数据库连接
【Mybatis】Mybatis中特殊SQL的执行,模糊查询,批量删除,动态设置表名,添加功能获取自增的主键
【Mybatis】Mybatis中特殊SQL的执行,模糊查询,批量删除,动态设置表名,添加功能获取自增的主键
103 0
|
SQL
【SQL系列】在WHERE子句中使用别名来引用列
【SQL系列】在WHERE子句中使用别名来引用列
211 0
|
XML SQL Java
mybatis学习(31):修改部分字段(有外键,先查询,再修改)
mybatis学习(31):修改部分字段(有外键,先查询,再修改)
358 0
mybatis学习(31):修改部分字段(有外键,先查询,再修改)
|
XML SQL Java
Mybatis - 无效的列类型: 1111
Mybatis - 无效的列类型: 1111
865 0
|
Java 数据库连接 数据库
MyBatis test表达式中判断相等无效
本文目录 1. 现象 2. 问题处理 3. 解决
221 0
|
SQL Java 数据库连接
MyBatis 动态 SQL trim 的应用,可以添加或删除前缀或后缀
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/80986793 MyBatis 动态 SQL trim 的应用,可以添加或删除前缀或后缀。
1239 0