我第一次使用这个库,遇到了一个问题。我按照文件做了所有的事情,但是什么都没用,我也不知道为什么。这是我的table模型:
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()
}
存储方法也不起作用
1条答案
按热度按时间3z6pesqy1#
正确地阅读文档,差异会很明显。要读的是数据库文档。
你有两个选择。你可以打电话
database.create()
,这是一个阻塞创建操作,将创建数据库中的所有表。选择2是打电话
database.taskDataCassandra.create.ifNotExists().future()
.如果你不使用
future()
,您所拥有的只是一个生成的查询,实际上您并没有执行任何操作。如果您检查database.taskDataCassandra.create.ifNotExists()
这将是一场灾难CreateQuery
,如果加上future()
你得到一个Future[Result]
.希望这有意义。