Метод вставки Scala Phantom Cassandra возвращает пустой ResultSet

Я хочу вставить данные в свою таблицу в Cassandra, а затем вернуть значение из столбца «user_id» вместо полного 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, изменить ее на пользователя и в конечном итоге получить идентификатор. Несмотря на то, что данные были сохранены в моей таблице, я получил

ResultSet [исчерпан: правда, столбцы []]

столбцы ResultSet пусты, и, следовательно, r.one() вернул null. Я не нашел примеров для моей цели. Итак, может ли phantom-dsl делать что-то вроде Quill?

val q = quote {
  query[Product].insert(lift(Product(0L, "My Product", 1011L))).returning(_.id)
}

person IVa    schedule 02.04.2017    source источник
comment
просто из любопытства, какой здесь вариант использования?   -  person flavian    schedule 03.04.2017
comment
У меня есть REST API и почтовый запрос, который сохраняет пользователя в cassandra, и я хотел бы получить ответ с идентификатором сохраненного пользователя после вставки, например {code: 201 Created, id: ffffffff}.   -  person IVa    schedule 03.04.2017


Ответы (1)