Scala用のPhantom DSLドライバーを使用してCassandra DBにデータを保存する単純なScala Playアプリを構築しています。Cassandra の優れた機能の 1 つは、部分的な更新を実行できることです。つまり、キー列を指定する限り、テーブル内の他のすべての列に値を指定する必要はありません。Cassandra は、キーに基づいてデータを既存のレコードにマージします。
残念ながら、これは Phantom DSL では動作しないようです。複数の列を持つテーブルがあり、キーとデータ列の 1 つだけに値を指定して更新できるようにしたいと考えています。他のすべてのデータ列はそのままにして、通常どおり Cassandra にこれをレコードにマージさせます。そのレコードは変更されていません。
ただし、挿入/更新ステートメントで値を指定しない場合、Phantom DSL は既存の列を null で上書きします。
これに対する回避策を知っている人はいますか?最終的にデータ列が非常に大きくなるため、毎回すべてのデータ列を読み書きする必要はありません。
参考までに、Phantom コーディングには次の例と同じアプローチを使用しています。