使用mapper select中的collection 但是需要分页的做法
2017-12-11 10:12
435 查看
当你的一个实体类中有一个集合属性的时候,你需要用到mapper中的collection标签,但是假如你恰巧又需要分页的时候时候,你使用了pagehelper这个的插件的时候,这个就没办法实现你的需求,你将集合属性满足的时候,你去看查询的SQL语句你就会发现,你查询的SQL条数和你得到实体数应该是对应不上的,pagehelper实际上是对SQL查询语句的限制,而不是对实体类进行限制,这个时候,一次SQL是现实分页已经满足不来了, collection中还有一个标签的select 这个 select实际上满足的是集合中的实体的自动关联查询
,这个时候,就是N+1次的查询 ,n就是你的size的大小,限制好size大小,基本就不会出现性能上的问题。
,这个时候,就是N+1次的查询 ,n就是你的size的大小,限制好size大小,基本就不会出现性能上的问题。
<resultMap id="detectRecord" type="DetectRecord"> <id column="id" property="id"/> .... <collection property="values" column="specimen_id" select="getDetectValues"/> </resultMap> <resultMap id="detectValue" type="DetectValue"> <id column="id" property="id"/>
..... </resultMap>
<select id="getDetectRecords" resultMap="detectRecord"> SELECT FROM </select> <select id="getDetectValues" parameterType="String" resultMap="detectValue"> select from where </select>
相关文章推荐
- <s:doubleselect 的使用-不支持EL表达式,需要使用OGNL来动态赋值-could not be resolved as a collection/array/map/enumerati
- select回显示--这个方法虽然可以传值给后台,但是分页需要点击两次,才能提交,作为弯路
- Select语句中使用FOR ALL ENTRIES IN需要注意的问题(转帖)
- 由于最近开发服务器送修,临时需要在windows7 下搭建一个CVS, 使用CVSNT, 但是发现安装后CVSNT Contral Panel无法使用。
- MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适
- 当获取相似数据时,使用不同方法调用不同sp,但是使用同一个方法去用IIDataReader或者SqlDataReader读取数据时需要判断column name是否存在。
- 完成了WF工作流持久化和对持久化介质数据的加载, 但是仅仅用持久化,不能够保存工作流当前的执行状态,需要跟踪服务支持,怎样使用Tracing 服务呢?
- Mybatis 使用Mapper接口的Sql动态代码方式进行CURD和分页查询
- CakePHP下使用paginator需要对多个字段排序的做法
- Java中对于Collection类中Stack使用的一点需要记住的地方
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- Mapped Statements collection does not contain value for TaskMapper.selectByPrimaryKey
- SQl server 如何获得新增的自增长字段IDde 值 使用select @@IDENTITY能快速解决,但是怎么使用呢?
- 完成了WF工作流持久化和对持久化介质数据的加载, 但是仅仅用持久化,不能够保存工作流当前的执行状态,需要跟踪服务支持,怎样使用Tracing 服务呢?
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
- mybatis 使用collection标签实现一对多查询(多分页使用)
- SQL2000系统表、存储过程、函数的功能介绍及应用2009年01月21日 星期三 11:38虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。因为SQL
- 数据库_select_通用分页的使用示例
- 关于SelectOjbect使用需要注意的一些问题