问题描述
我正在尝试在 Grails 中创建一个包含播放列表的应用,其中每个播放列表都有歌曲,并且歌曲可以映射到许多不同的播放列表。
这是我的域类:
class Playlist {
String name
String description
long id
static hasMany = [songs: Song]
}
class Song {
String name
String artist
String album
long id
static belongsTo = [playlist: Playlist]
}
grails generate-all Playlist
# and
grails generate-all Song
如果我想删除一首歌曲或编辑一首歌曲并将其反映在适当的播放列表中,那么设计此内容的正确方法是什么?
每次更新、删除或添加歌曲时,我是否都进入 SongController.groovy
并更新播放列表?
或者我是否进入 PlaylistController.groovy
并在每次删除、更新或添加歌曲时设置新歌曲?
现在我想我在每个更新、删除和创建生成方法的 SongController.groovy
中执行此逻辑。只需检查它所属的相应播放列表,然后添加、删除或更新该播放列表。这是设计这项服务的好方法吗?
示例:
在SongController.groovy
中:
@Transactional
def delete(Long id){
if (id == null){
response.status = 404
}
Song song = Song.get(id)
Playlist playlist = song.playlist
playlist.removeFromSongs(song)
songService.delete(id)
response.status = 200
}
因此,当一首歌曲被删除时,我们也会将其从其父播放列表中删除。这是沿着正确的设计/思考方式吗?
非常感谢您的帮助,谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)