猿问

mybatis多对多 分页

sql语句(拼接条件后):

SELECT DISTINCT article.id,article.title,article.content,article.summarize,article.publish_time as publish_time,article.page_views as pageViews , 
topic.id as topic_id, topic.name as topic_name, topic.summarize as topic_summarize , 
tag.id as tag_id, tag.name as tag_name 
FROM tb_article article LEFT JOIN tb_topic topic ON article.topic_id = topic.id 
LEFT JOIN tb_article_tag article_tag ON article.id = article_tag.article_id
 LEFT JOIN tb_tag tag ON tag.id = article_tag.tag_id
  ORDER BY article.id limit 0,5

xml映射:

<resultMap id="allResult" type="space.entity.Article">
    <id column="id" property="id"/>
    <result column="title" property="title"/>
    <result column="content" property="content"/>
    <result column="summarize" property="summarize"/>
    <result column="publish_time" property="publishTime"/>
    <result column="page_views" property="pageViews"/>
    <association column="topic_id" property="topic" resultMap="space.dao.TopicDao.openResultMapper"/>
    <collection property="tagList" ofType="Tag" resultMap="space.dao.TagDao.openResultMapper"/>
</resultMap>

会出现这种情况

mybatis会把两条记录合并成一条,就少了一条记录


也出现了这种情况

http://img.mukewang.com/596348950001b07007770217.jpg

http://img.mukewang.com/59634896000175a508200278.jpg

当两个条记录不在同一页,mybatis是看不到他们的,就会出现这种总数+1的情况


现在问题来了,sql语句怎么写,才能把多对多的记录放在一行,并且配合mybatis的映射呢?

暴躁的代码
浏览 2343回答 0
0回答
随时随地看视频慕课网APP

相关分类

Java
我要回答