Cassandraのテーブルにデータを挿入し、完全なResultSetの代わりに "user_id"カラムから値を返したいとします。ここで私のコードのスニペットです:Scala Phantom Cassandra insertメソッドが空のResultSetを返す
def create(user: User): Future[UUID] = {
insert
.value(_.id, user.id)
.value(_.email, user.email)
.value(_.name, user.name)
.consistencyLevel_=(ConsistencyLevel.ALL)
.future()
.map(r => fromRow(r.one()).id)
}
def fromRow(r: Row): User = {
User(id(r), email(r), name(r))
}
Future()はFuture [ResultSet]を返します。その後、ResultSetからRowを取得し、Userに変更して、最終的にIDを取得しようとします。私は
のResultSetだデータは、私のテーブルに保存されたという事実にもかかわらず[尽くさ:真、列[]]のResultSetの
列は空であり、その結果r.one()はnullを返しました。 私の目的のための例は見つかりませんでした。だから、ファントムDSLはクイルのようなことをすることができますか?だから、create
メソッドが自動的に生成されたファントムの最近のバージョンで
val q = quote {
query[Product].insert(lift(Product(0L, "My Product", 1011L))).returning(_.id)
}
ただ好奇心から、ここでのユースケース何? – flavian
私はREST APIを持っていて、cassandraにユーザーを保存する要求を投稿しています。たとえば、{"code": "201 Created"、 "id": "ffffffff"}のように、挿入後に保存されたユーザーのIDで応答したいと考えています。 – IVa