ecabe5c514bf672324da42254e84bf9a11e1cf19
[mediacube.git] /
1 package net.elgekko.mediacube.integration.amc;
2
3
4 import org.apache.ibatis.annotations.Mapper;
5 import org.apache.ibatis.annotations.Result;
6 import org.apache.ibatis.annotations.Results;
7 import org.apache.ibatis.annotations.SelectProvider;
8 import org.apache.ibatis.jdbc.SQL;
9 import org.apache.ibatis.type.JdbcType;
10
11 import java.text.ParseException;
12 import java.util.List;
13
14 @Mapper()
15 public interface MediaWithMediaFileMapper {
16
17     @SelectProvider(type = WebUsersViewProvider.class, method = "get")
18     @Results({
19             @Result(property = "media.id", column = "id", jdbcType = JdbcType.BIGINT, id = true),
20             @Result(property = "media.archived", column = "archived", jdbcType = JdbcType.TIMESTAMP),
21             @Result(property = "mediaFile.id", column = "mfid", jdbcType = JdbcType.BIGINT, id = true),
22             @Result(property = "mediaFile.lastmodified", column = "lastmodified", jdbcType = JdbcType.TIMESTAMP)
23     })
24     public List<MediaWithMediaFile> get();
25
26     public class WebUsersViewProvider {
27         public String get() throws ParseException {
28             SQL sql = new SQL();
29             sql.SELECT("m.id", "m.archived", "mf.id mfid", "mf.lastmodified");
30             sql.FROM("media m");
31             sql.LEFT_OUTER_JOIN("mediafile mf ON (mf.mediaId = m.id)");
32             sql.WHERE("m.archived < '2120-09-03 00:00:00'");
33             sql.ORDER_BY("m.archived DESC");
34             return sql.toString();
35         }
36
37     }
38
39
40 }