Scala 如何使用幻影dsl创建键空间和插入数据
我第一次使用这个库时遇到了一个问题。我按照文档做了所有的事情,但是没有任何效果,我也不知道为什么。这是我的桌子模型:Scala 如何使用幻影dsl创建键空间和插入数据,scala,cassandra,phantom-dsl,Scala,Cassandra,Phantom Dsl,我第一次使用这个库时遇到了一个问题。我按照文档做了所有的事情,但是没有任何效果,我也不知道为什么。这是我的桌子模型: trait CassandraModel object CassandraModel { case class TaskData(notifyid: String, notifyType: String) extends CassandraModel abstract class TaskDataCassand
trait CassandraModel
object CassandraModel {
case class TaskData(notifyid: String,
notifyType: String)
extends CassandraModel
abstract class TaskDataCassandra extends Table[TaskDataCassandra, TaskData] {
object notifyid extends StringColumn with PartitionKey
object notifyType extends StringColumn
def store(record: TaskData): InsertQuery.Default[TaskDataCassandra, TaskData] =
insert
.value(_.notifyId, record.notifyId)
.value(_.notifyType, record.notifyType)
}
}
和数据库提供程序的数据库:
class AppDatabase(override val connector: CassandraConnection) extends Database[AppDatabase](connector) {
object taskDataCassandra extends TaskDataCassandra with Connector
}
trait AppDatabaseProvider extends DatabaseProvider[AppDatabase]
所以,当我启动我的应用程序时,我试图创建一个键空间,但什么都没有发生
object Boot extends App with AmqpConnector with ServiceRestRoute with JsonSerializer with AppDatabaseProvider {
override def database: AppDatabase = new AppDatabase(CassandraConnector.createCassandraConnection)
database.taskDataCassandra.create.ifNotExists()
}
存储方法也不起作用正确地阅读文档,差异会很明显。要读的东西是 你有两个选择。您可以调用database.create,这是一个阻塞创建操作,将创建数据库中的所有表 选项2是调用database.taskDataCassandra.create.ifNotExists.future 如果您不使用future,您所拥有的只是生成的查询,您实际上并没有执行任何操作。如果您检查database.taskDataCassandra.create.ifNotExists的返回类型,它将是一个CreateQuery,如果您添加future,您将得到future[Result] 希望这是有意义的。你需要未来,等待它完成。见: