1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.manyanno;
17
18 import java.util.List;
19
20 import org.apache.ibatis.annotations.Arg;
21 import org.apache.ibatis.annotations.ConstructorArgs;
22 import org.apache.ibatis.annotations.Many;
23 import org.apache.ibatis.annotations.Result;
24 import org.apache.ibatis.annotations.Results;
25 import org.apache.ibatis.annotations.Select;
26
27 public interface PostMapper {
28
29 @Select("select * from post where author_id = #{id} order by id")
30
31 @Results(value = {
32 @Result(property = "id", column = "id"),
33 @Result(property = "subject", column = "subject"),
34 @Result(property = "body", column = "body"),
35 @Result(property = "tags", javaType = List.class, column = "id", many = @Many(select = "getTagsForPost"))
36 })
37
38 List<AnnoPost> getPosts(int authorId);
39
40 @Select("select t.id, t.name from tag t inner join post_tag pt on pt.tag_id = t.id where pt.post_id = #{postId} order by id")
41
42 @ConstructorArgs(value = {
43 @Arg(column = "id", javaType = int.class),
44 @Arg(column = "name", javaType = String.class)
45 })
46
47 List<AnnoPostTag> getTagsForPost(int postId);
48
49 }