【问题标题】:Scala Phantom Cassandra Conditional insert?Scala Phantom Cassandra 条件插入?
【发布时间】:2017-08-18 17:01:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: scala cassandra phantom-dsl


    【解决方案1】:

    只需记录查询,响应就会很明显。默认情况下,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-08-27
      • 1970-01-01
      • 2016-09-19
      • 2016-10-22
      • 1970-01-01
      • 2018-03-11
      • 2016-09-01
      • 1970-01-01
      • 2019-10-27
      相关资源
      最近更新 更多