可以研究下mybatis中<resultMap>标签中加入<collection>的用法即可解决该问题。
使用mybatis进行查询的时候一对多查询如何对‘多’的查询数量进行限制,还是在寒假期间做项目遇到的问题,在网上找了 半天没发现有合适的,就翻了下mybatis的官方说明文档,向下找 ‘集合的嵌套 Select 查询’
解释一下其中的意思
- 查找时调用selectBlog (第二句sql)并映射结果集到blogResult (第一句sql)
- 第一句sql中下面也有解释,简单讲就是一对多查询将‘多’的字段名定义为posts,数据类型为Post,传入执行selectPostsForBlog(第三条语句)的参数是column=“id”,用java可以表示为:ArrayList
posts = null; - 执行‘多’的查询其中的BLOG_ID = #{id} id就是
这个标签的column属性传递过去的
CateAndValueMap 结果映射集是最重要的
这就是改了个名字uuid变成了propId - 我的ofType属性是Map,可以理解为ArrayList
- 在第三条sql中对结果数量进行限制就可以得到正确的结果了 limit 6



