spring-boot-realworld-examp.../src/main/resources/mapper/ArticleFavoritesQueryServic...

36 lines
1.5 KiB
XML
Raw Normal View History

2017-08-15 09:47:18 +07:00
<?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" >
2017-08-18 16:08:27 +07:00
<mapper namespace="io.spring.application.ArticleFavoritesQueryService">
2017-08-15 09:47:18 +07:00
<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>
2017-08-17 16:17:37 +07:00
<select id="articlesFavoriteCount" resultMap="favoriteCount">
2017-08-18 11:09:07 +07:00
select A.id, count(AF.user_id) as favoriteCount from articles A
2017-08-17 16:17:37 +07:00
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>
2017-08-18 16:08:27 +07:00
<resultMap id="favoriteCount" type="io.spring.application.ArticleFavoriteCount">
2017-08-17 16:17:37 +07:00
<id column="id" property="id"/>
<result column="favoriteCount" property="count"/>
</resultMap>
2017-08-15 09:47:18 +07:00
</mapper>