我想在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中检索Row,将其修改为User并最终获得id。 尽管数据已保存到我的桌子上,但我得到了
ResultSet [耗尽:真,列[]]
ResultSet的列为空,因此r.one()返回null。 我没有为我的目的找到任何例子。 那么,phantom-dsl可以像Quill那样做吗?
val q = quote { query[Product].insert(lift(Product(0L, "My Product", 1011L))).returning(_.id) }I want to insert data to my table in Cassandra and then return value from column "user_id" instead of full ResultSet. Here it is snippet of my code:
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)) }So future() returns Future[ResultSet]. After that I try to retrieve Row from ResultSet, modify it to User and get id eventually. Despite the fact that data were saved to my table I got
ResultSet[ exhausted: true, Columns[]]
columns of the ResultSet are empty and consequently r.one() returned null. I haven't found any examples for my purpose. So, can phantom-dsl do something like Quill?
val q = quote { query[Product].insert(lift(Product(0L, "My Product", 1011L))).returning(_.id) }最满意答案
因此,在更新版本的幻像中,会自动生成create方法。 更多细节在这里 。 fromRow方法也是自动生成的,因此您无需手动输入。
长话短说,这是你可以使用的:
def create(user: User): Future[UUID] = { store(user) .consistencyLevel_=(ConsistencyLevel.ALL) .future() .map(_ => user.id) }So in more recent versions of phantom that create method is automatically generated. More details here. The fromRow method is also automatically generated so you don't need to type it manually.
Long story short, this is what you could use:
def create(user: User): Future[UUID] = { store(user) .consistencyLevel_=(ConsistencyLevel.ALL) .future() .map(_ => user.id) }更多推荐
发布评论