我使用的是phantom dsl(2.28.0版,scala 2.12.7版),每次查询我的数据库时,我都会收到以下不明确的错误:
scala.notimplementederror:缺少实现
当我使用 .future()
为了解决我的查询,在这种情况下,查询可以正常工作。另外,运行 .executableQuery()
方法返回一个格式正确的查询,所有这些都指向我未能正确构建模型,但我不知道我做错了什么。查询示例:
工作查询:
db.entries.select.all.future // -> Returns a Future[ResultSet]
db.entries.select.where(_.user_id is userId).future() // -> ^
失败的查询:
db.entries.select.all.fetch // -> Err
db.entries.select.where(_.user_id is userId).fetch() // -> Err
db.entries.select.all.fetchRecord // -> Err
...
paginaterecord()等也是如此。
case class Rec(
id: UUID,
body: String,
time: DateTime,
user_id: Integer
)
abstract class active extends Table[active, Rec] {
object id extends UUIDColumn with PartitionKey
object body extends StringColumn
object time extends DateTimeColumn
object user_id extends IntColumn
}
class BasicDatabase(override val connector: CassandraConnection) extends Database[BasicDatabase](connector) {
object entries extends active with Connector
}
implicit val keySpace: KeySpace = KeySpace("some_keyspace")
implicit val session: Session = db.session
object db extends BasicDatabase(CassandraConnector.default)
我还是一个新手,所以任何建议都是有用的,提前谢谢。
1条答案
按热度按时间h7appiyu1#
好吧,在深入研究源代码之后,我发现
fromRow()
抽象类的方法失败,因此我添加了一个重写:这解决了这个问题,虽然我仍然不知道为什么它是失败的第一种情况,所以任何答案与适当的解释仍然是欢迎的。