1 package hu.user.mediacube.integration.safedelete.db;
4 import org.apache.ibatis.annotations.*;
5 import org.apache.ibatis.jdbc.SQL;
6 import org.apache.ibatis.type.JdbcType;
8 import java.text.ParseException;
12 public interface MediaCubeRecordMapper {
14 @SelectProvider(type = MediaCubeRecord.class, method = "getByFileName")
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)
22 List<MediaCubeRecord> getByFileName(@Param("fileName") String fileName);
24 class MediaCubeRecordProvider {
25 public String getByFileName(String fileName) throws ParseException {
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();