选择使用Phantom的地方并没有解决

时间:2015-08-11 09:02:49

标签: scala cassandra phantom-dsl

我一直在玩虚拟维基中提供的smiple代码,我已经尝试了以下内容;

import com.websudos.phantom.dsl._

case class Student(id: UUID, name: String)

class Students extends CassandraTable[Students, Student] {
  object id extends UUIDColumn(this) with PartitionKey[UUID]
  object name extends StringColumn(this)

  def fromRow(row: Row): Student = {
    Student(id(row), name(row))
  }
}

object Students extends Students with Connector {

  def getByName(name: String): Future[Option[Student]] = {
    select.where(_.name eqs name).one()
  }
}

但我的IDE一直说Cannot resolve symbol where,编译器说value where is not a member of com.websudos.phantom.builder.query.RootSelectBlock[Students,Student]

我使用Scala 2.11.6和Phantom 1.10.1,非常感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

您错过了一个基本的Cassandra问题,您无法通过$(function() { $('form').submit(function(e) { e.preventDefault(); var valid; valid = validateContact() if(valid ) { $.ajax({ type: 'POST', url: "http://facebook.com", data: {}, dataType: 'json', success: function() { alert('success'); }, error: function() { alert('error'); } }) } }); }); function validateContact(){ var valid = true; var name = document.getElementById("name").value; var lastname = document.getElementById("lastname").value; var email = document.getElementById("regEmail").value; if(name ==''){ document.getElementById("name").style.borderColor="red"; name.value="Please Enter Name"; valid = false; } if(lastname ==''){ valid = false; } if(email ==''){ valid = false; } return valid; } 进行查询,因为它不是索引列。根据您刚刚定义的表,您尝试执行的查询无效,Cassandra会在运行时告诉您。

Phantom会在编译时阻止大多数不好的事情。值得一读this blog series来了解Cassandra的工作原理。

为了正确看待问题,唯一对您的name表有效的where查询是:

Students