0

我正在使用 Phantom 库将 Scala 代码中的行插入 Cassandra。

所以基本上我创建了一个扩展 CassandraTable 的类,然后我从幻像库中获取所有创建、更新方法。

我想知道的一件事是它如何生成它的 INSERT 语句。它是否会生成条件更新语句(如 INSERT IF NOT EXISTS)的 vanilla INSERT 语句。

4

1 回答 1

3

只需记录查询,响应就会很明显。默认情况下,insert查询不包含ifNotExists. 从 Phantom 2.5.0 开始,表会自动生成一个store方法,因此您可以调用:

database.table.store(record).ifNotExists.future()

在幻影 2.5.0 之前:

def store(record: Record): InsertQuery.Default[Table, Record] = {
  insert.value(_.column1, record.value1)
    .value(_.column2, record.value2)
    ...
    .ifNotExists()
}

附带说明一下,幻像中的所有查询都有一个.qb.queryString访问器,因此查看内部非常简单。

于 2017-03-26T06:09:09.343 回答