2017-01-10 6 views
0

Я пробовал phantom от надомников, следующих за выложенным тетом на вики.Что случилось с CollectionColumn?

Я использую тестовую модель:

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

Могу ли я, используя другую версию из примера вики? Или пропустить что-то еще?

ответ

1

Это проблема подсветки InteliJ. ListColumn определяется как псевдоним типа внутри таблицы Cassandra, и для всех псевдонимов типов, которые принимают аргументы конструктора, InteliJ не способен их просматривать.

Это в стороне, я бы действительно обновился до фантома 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) 
} 

В более поздних версиях фантома, 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] 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^