如何使用 squeryl 删除多个实体?

How can I delete multiple entities with squeryl?

我知道如何删除一个实体,但是当我尝试删除包含实体的列表时:

val songs = List(song1, song2)
songsQuery.delete(songs) 

我知道了:

Error:(77, 28) Cannot prove that com.logic.domain.entity.Song <:< org.squeryl.KeyedEntity[Iterable[com.logic.domain.entity.Song]].
   songsQuery.delete(songs)
              ^

我哪里错了?

我不确定您在 Table 命名歌曲和 List 命名歌曲之间是否存在命名冲突,或者这是否只是输入到问题中。如果是这样,那可能是你的问题。 您可以在这里使用 deleteWhere,然后尝试类似的操作:songs.deleteWhere(s => s.id in songsList.map(_.id)) 这将删除 ID 列表中 id 所在的所有实体。