栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis 实现一对多查询并限制每个分组的条数(一对多查询limit数量不对的解决方法)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis 实现一对多查询并限制每个分组的条数(一对多查询limit数量不对的解决方法)

引言

可以研究下mybatis中<resultMap>标签中加入<collection>的用法即可解决该问题。
使用mybatis进行查询的时候一对多查询如何对‘多’的查询数量进行限制,还是在寒假期间做项目遇到的问题,在网上找了 半天没发现有合适的,就翻了下mybatis的官方说明文档,向下找 ‘集合的嵌套 Select 查询’

解释一下其中的意思

  1. 查找时调用selectBlog (第二句sql)并映射结果集到blogResult (第一句sql)
  2. 第一句sql中下面也有解释,简单讲就是一对多查询将‘多’的字段名定义为posts,数据类型为Post,传入执行selectPostsForBlog(第三条语句)的参数是column=“id”,用java可以表示为:ArrayList posts = null;
  3. 执行‘多’的查询其中的BLOG_ID = #{id} id就是这个标签的column属性传递过去的
所以就有了我的一段代码
    
    
    
        
        
    
    
        SELECT DISTINCT b.`value` FROM propertyvalue b
        WHERe b.active = true AND b.value != ''
        AND b.propId = #{propId}
        limit 6
    

CateAndValueMap 结果映射集是最重要的

  • 这就是改了个名字uuid变成了propId
  • 我的ofType属性是Map,可以理解为ArrayList values= null;
    其中column="{propId=uuid}"就是把uuid作为propid传入selectValue这个sql(第三句sql)
  • 在第三条sql中对结果数量进行限制就可以得到正确的结果了 limit 6
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886015.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号