让我们考虑一下这个表:
+----------+----------+
| user_id | store_id |
+----------+----------+
| 39 | 8 |
| 8 | 39 |
| 5 | 11 |
+----------+----------+
我用光滑映射它(删除索引和外键以简化它):
case class FavoriteStore(userId: Long, storeId: Long)
class FavoriteStoreTable(tag: Tag)
extends Table[FavoriteStore](tag, "FAVORITE_STORE") {
def userId = column[Long]("USER_ID")
def storeId = column[Long]("STORE_ID")
override def * = (userId, storeId) <>
(FavoriteStore.tupled, FavoriteStore.unapply)
}
我希望能够使用Slick编写以下SQL查询:
INSERT INTO favorite_store (user_id, store_id) VALUES (39, 8)
WHERE NOT EXISTS
(SELECT * FROM favorite_store WHERE user_id = 39 AND store_id = 8)
有什么想法吗?
答案 0 :(得分:1)
Slick目前不支持此功能,我创建了以下问题:https://github.com/slick/slick/issues/800
答案 1 :(得分:0)
至少从Slick 3.0.0开始,现在可以使用Slick中的复合绑定查询。
在类似问题上查看此答案:https://stackoverflow.com/a/31352126/3305586
关于撰写绑定查询的更多信息(让我更好地理解我刚刚传递链接的答案: Scala slick query where in list