38b383c336b1a9a69be2140ddd676833e846449c
[mediacube.git] /
1 package hu.user.mediacube.integration.safedelete.db;
2
3
4 import org.apache.ibatis.annotations.*;
5 import org.apache.ibatis.jdbc.SQL;
6 import org.apache.ibatis.type.JdbcType;
7
8 import java.text.ParseException;
9 import java.util.List;
10
11 @Mapper()
12 public interface MediaCubeRecordMapper {
13
14     @SelectProvider(type = MediaCubeRecord.class, method = "getByFileName")
15     @Results({
16             @Result(property = "item.id", column = "itemid", jdbcType = JdbcType.BIGINT, id = true),
17             @Result(property = "media.id", column = "mediaid", jdbcType = JdbcType.BIGINT, id = true),
18             @Result(property = "media.archived", column = "archived", jdbcType = JdbcType.TIMESTAMP),
19             @Result(property = "mediaFile.id", column = "mediafile", jdbcType = JdbcType.BIGINT, id = true),
20             @Result(property = "mediaFile.lastmodified", column = "lastmodified", jdbcType = JdbcType.TIMESTAMP)
21     })
22     List<MediaCubeRecord> getByFileName(@Param("fileName") String fileName);
23
24     class MediaCubeRecordProvider {
25         public String getByFileName(String fileName) throws ParseException {
26             SQL sql = new SQL();
27             sql.SELECT("i.id item", "m.id mediaid", "m.archived", "mf.id mediafilefid", "mf.lastmodified");
28             sql.FROM("mediafile mf");
29             sql.LEFT_OUTER_JOIN("media m ON (m.id = mf.mediaid)");
30             sql.LEFT_OUTER_JOIN("item i ON (i.id = m.itemid)");
31             sql.WHERE("mf.relativepath = #{fileName}");
32             return sql.toString();
33         }
34
35     }
36
37
38 }