/*
* Copyright (c) 2023. yo-saito. All Rights Reserved.
*/
package net.piedpiper.bremer.dao
import net.piedpiper.bremer.entity.AudioTagEntity
import net.piedpiper.bremer.utils.DaoUtils
import org.apache.ibatis.annotations.*
import org.springframework.stereotype.Repository
@Repository("bremer.dao.AudioTagDao")
@Mapper
interface AudioTagDao {
@ResultMap("net.piedpiper.bremer.AudioTagEntity")
@Select("SELECT * FROM audio_tag WHERE audio_id = #{audioId} AND tag_id = #{tagId}")
fun findByAudioIdAndTagId(
@Param("audioId") audioId: Long,
@Param("tagId") tagId: Long
): AudioTagEntity?
@UpdateProvider(type = Sql::class, method = "insertOne")
fun insertOne(@Param("entity") entity: AudioTagEntity): Boolean
@Delete("DELETE FROM audio_tag WHERE audio_id = #{audioId} AND tag_id = #{tagId}")
fun deleteOneByAudioIdAndTagId(
@Param("audioId") audioId: Long,
@Param("tagId") tagId: Long
): Boolean
class Sql {
companion object {
@JvmStatic
@Options(useGeneratedKeys = true, keyColumn = "id")
fun insertOne(@Param("entity") entity: AudioTagEntity): String =
DaoUtils.insertOne(entity)
}
}
}