spring-boot-realworld-examp.../src/main/resources/mapper/ArticleFavoritesQueryServic...
2017-08-18 17:08:27 +08:00

36 lines
1.5 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="io.spring.application.ArticleFavoritesQueryService">
<select id="isUserFavorite" resultType="java.lang.Boolean">
select count(1) from article_favorites where user_id = #{userId} and article_id = #{articleId}
</select>
<select id="articleFavoriteCount" resultType="java.lang.Integer">
select count(1) from article_favorites where article_id = #{articleId}
</select>
<select id="articlesFavoriteCount" resultMap="favoriteCount">
select A.id, count(AF.user_id) as favoriteCount from articles A
left join article_favorites AF on A.id = AF.article_id
where id in
<foreach collection="ids" item="item" separator="," open="(" close=")">
#{item}
</foreach>
group by A.id
</select>
<select id="userFavorites" resultType="java.lang.String">
select
A.id
from articles A
left join article_favorites AF on A.id = AF.article_id
where id in
<foreach collection="ids" item="item" separator="," open="(" close=")">
#{item}
</foreach>
and AF.user_id = #{currentUser.id}
</select>
<resultMap id="favoriteCount" type="io.spring.application.ArticleFavoriteCount">
<id column="id" property="id"/>
<result column="favoriteCount" property="count"/>
</resultMap>
</mapper>