Scala Phantom Cassandra 条件插入?
Scala Phantom Cassandra Conditional insert?
我正在使用 Phantom 库将我的 Scala 代码中的行插入到 Cassandra 中。
所以基本上我创建了一个 class 来扩展 CassandraTable,然后我从 phantom 库中获取所有创建、更新方法。
我想知道的一件事是它是如何生成其 INSERT 语句的。它是否生成条件更新语句的香草 INSERT 语句,如 INSERT IF NOT EXISTS。
只需记录查询,响应就会很明显。默认情况下,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()
}
附带说明一下,phantom 中的所有查询都有一个 .qb.queryString
访问器,因此查看内部非常简单。
我正在使用 Phantom 库将我的 Scala 代码中的行插入到 Cassandra 中。
所以基本上我创建了一个 class 来扩展 CassandraTable,然后我从 phantom 库中获取所有创建、更新方法。
我想知道的一件事是它是如何生成其 INSERT 语句的。它是否生成条件更新语句的香草 INSERT 语句,如 INSERT IF NOT EXISTS。
只需记录查询,响应就会很明显。默认情况下,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()
}
附带说明一下,phantom 中的所有查询都有一个 .qb.queryString
访问器,因此查看内部非常简单。