Как рассчитывать при использовании resultmap? - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь сделать запрос страницы, используя Mybatis resultmap, я должен присоединиться к Post, поскольку есть условие в предложении where, но как я могу получить правильное число Blog, поскольку это отношение один ко многим?

<select id="selectBlog" resultMap="blogResult">
  select
  B.id as blog_id,
  B.title as blog_title,
  B.author_id as blog_author_id,
  P.id as post_id,
  P.subject as post_subject,
  P.body as post_body
  from Blog B
  left join Post P on B.id = P.blog_id
  where B.id = #{id}
  and P.subject=#{postSubject}
</select>

<resultMap id="blogResult" type="Blog">
  <id property="id" column="blog_id" />
  <result property="title" column="blog_title"/>
  <collection property="posts" ofType="Post">
    <id property="id" column="post_id"/>
    <result property="subject" column="post_subject"/>
    <result property="body" column="post_body"/>
  </collection>
</resultMap>

edit Извините, я не понял.Это кажется легким, и я нахожу решение:

<select id="count" resultType="java.lang.Integer">
  select
  count(distinct B.id)
  from Blog B
  left join Post P on B.id = P.blog_id
  where B.id = #{id}
  and P.subject=#{postSubject}
</select>
...