/*
* Copyright (c) 2023. yo-saito. All Rights Reserved.
*/
package net.piedpiper.bremer.dao
import net.piedpiper.bremer.entity.PlaylistAudioEntity
import net.piedpiper.bremer.utils.DaoUtils
import net.piedpiper.bremer.utils.WHERE_IN
import org.apache.ibatis.annotations.*
import org.springframework.stereotype.Repository
@Repository("bremer.dao.PlaylistAudioDao")
@Mapper
interface PlaylistAudioDao {
@InsertProvider(type = Sql::class, method = "insertOne")
@Options(useGeneratedKeys = true, keyProperty = "id")
fun insertOne(@Param("entity") entity: PlaylistAudioEntity): Boolean
@UpdateProvider(type = Sql::class, method = "updateOne")
fun updateOne(@Param("entity") entity: PlaylistAudioEntity)
@DeleteProvider(type = Sql::class, method = "deleteAllByIds")
fun deleteAllByIds(@Param("ids") ids: List<Long>);
class Sql {
companion object {
@JvmStatic
fun insertOne(@Param("entity") entity: PlaylistAudioEntity): String =
DaoUtils.insertOne(entity)
@JvmStatic
fun updateOne(@Param("entity") entity: PlaylistAudioEntity): String =
DaoUtils.updateOne(entity)
@JvmStatic
fun deleteAllByIds(@Param("ids") ids: List<Long>): String =
DaoUtils.deleteQuery(PlaylistAudioEntity::class)
.WHERE_IN("id", "ids", ids.size)
.toString()
}
}
}