2017-03-25 14 views
0

Phantomライブラリを使用して、ScalaコードからCassandraに行を挿入しています。Scala Phantom Cassandra条件付き挿入?

基本的に私はCassandraTableを拡張したクラスを作成してから、ファントムライブラリからすべての作成、更新メソッドを取得します。

私が知りたいことは、INSERT文をどのように生成するのかです。 INSERT IF NOT EXISTSのような条件付き更新文のバニラINSERT文を生成しますか?

答えて

3

クエリを記録するだけで、応答が明白になります。既定ではinsertクエリにはifNotExistsは含まれません。

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

ファントム2.5.0前に:あなたが呼び出すことができるようにファントム2.5.0の時点では、テーブルのstore方法を自動生成

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

サイドノートでは、ファントム内のすべてのクエリを持っています.qb.queryStringアクセッサであるので、内部を見るのはかなり簡単です。