Creating a schema in Cassandra using Phantom Scala DSL -
i have written code
case class user(id: int, gender: string, age: int, occupation: string, zipcode: string) object defaults { val hosts = seq("172.17.0.9") val connector = contactpoints(hosts).keyspace("movies") } class mydatabase(val keyspace: keyspacedef) extends com.websudos.phantom.db.databaseimpl(keyspace) { object users extends users keyspace.connector } object mydatabase extends mydatabase(defaults.connector) class users extends cassandratable[users, user] { object id extends intcolumn(this) partitionkey[int] object age extends intcolumn(this) index[int] object gender extends stringcolumn(this) index[string] object occupation extends stringcolumn(this) index[string] object zipcode extends stringcolumn(this) index[string] def fromrow(row: row) : user = { user( row(id), row(gender), row(age), row(occupation), row(zipcode) ) } } object users extends users rootconnector { def store(user: user) : future[resultset] = { insert .value(_.id, user.id) .value(_.gender, user.gender) .value(_.age, user.age) .value(_.occupation, user.occupation) .value(_.zipcode, user.zipcode) .consistencylevel_=(consistencylevel.all) .future() } def getbyid(id: int) : future[option[user]] = { select.where(_.id eqs id).one() } }
but when compile errors.
object creation impossible, since member session: session in com.websudos.phantom.connectors.rootconnector not defined; member space: keyspace in com.websudos.phantom.connectors.rootconnector not defined.
i see other errors
[error] /users/u/myprojects/src/main/scala-2.11/com/abhi/movielensdatapreperation.scala:180: com.websudos.phantom.dsl.row not take parameters [error] row(id), [error] ^ [error] /users/u/myprojects/src/main/scala-2.11/com/abhi/movielensdatapreperation.scala:181: com.websudos.phantom.dsl.row not take parameters [error] row(gender), [error] ^ [error] /users/u/myprojects/src/main/scala-2.11/com/abhi/movielensdatapreperation.scala:182: com.websudos.phantom.dsl.row not take parameters [error] row(age), [error] ^ [error] /users/u/myprojects/src/main/scala-2.11/com/abhi/movielensdatapreperation.scala:183: com.websudos.phantom.dsl.row not take parameters [error] row(occupation), [error] ^ [error] /users/u/myprojects/src/main/scala-2.11/com/abhi/movielensdatapreperation.scala:184: com.websudos.phantom.dsl.row not take parameters [error] row(zipcode) [error] ^ [error] 5 errors found [error] (compile:compileincremental) compilation failed
since you've defined id, gender, age, etc columns, should extract values row this:
def fromrow(row: row) : user = { user( id(row), gender(row), age(row), occupation(row), zipcode(row) ) }
Comments
Post a Comment