0

我正在phantom按照 wiki 上的布局 tut 从外包人员那里尝试。

我正在使用测试模型:

case class User (id: String, name: String, friends: List[String])

和:

import com.websudos.phantom.dsl._

class Users extends CassandraTable[Users, User] {
  object id extends StringColumn(this) with PartitionKey[String]
  object name extends StringCoumn(this)
  object friends extends ListColumn[String](this)
}

ListColumn[String]()论点this被标记为错误,我认为我什至不应该费心构建。预期CassandraTable[String, User]而不是this.

我正在使用版本 1.29.6

我使用的版本与 wiki 示例不同吗?还是缺少其他东西?

4

1 回答 1

1

这是一个 InteliJ 突出显示问题。ListColumn被定义为 Cassandra 表中的类型别名,对于所有接受构造函数参数的类型别名,InteliJ 无法看穿它们。

除此之外,我真的会升级到 phantom 2.0.0+,只是因为 2.0.0 中的所有新改进。修复错误和减少您需要输入的代码量需要做很多工作:

import com.outworkers.phantom.dsl._

class Users extends CassandraTable[Users, User] {
  object id extends StringColumn(this) with PartitionKey
  object name extends StringCoumn(this)
  object friends extends ListColumn[String](this)
}

在 phantom 的最新版本 2.9.x+ 中,this使用新的紧凑 DSL 不再需要该参数。

import com.outworkers.phantom.dsl._

abtract class Users extends Table[Users, User] {
  object id extends StringColumn with PartitionKey
  object name extends StringColumn
  object friends extends ListColumn[String]
}
于 2017-01-19T16:20:16.127 回答