Ниже моя модная программа 2.0 в Scala IntelliJ IDEA 15.0.2.slick 2.0 error row._1 ошибка в Scala Intellij IDEA 15.0.2
Эта программа дает компиляции ошибки времени в IntelliJ IDEA:
не удается разрешить SYMBOL _1
Я прикрепил скриншот ошибки также.
import java.sql.Timestamp
import scala.slick.driver.PostgresDriver.simple._
case class User(
id: Long,
username: String,
email: Option[String],
password: String,
created: Timestamp)
//a simple table called 'users'
class Users(tag: Tag) extends Table[User](tag, "users") {
def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def username = column[String]("username", O.NotNull)
// an Option[] in the case class maps to a Nullable field here
def email = column[String]("email", O.Nullable)
def password = column[String]("password", O.NotNull)
// this is a hack for postgresql; if you're using another DB, comment this out
// and the corresponding field in the case class
def created = column[Timestamp]("created_at", O.NotNull, O.DBType("timestamp default now()"))
// usernames should be unique
def idx = index("users_unique_username", (username), unique = true)
//define the "shape" of a single data record
//we're saying that an object of class User (our case class) should be returned
def * = (id, username, email.?, password,created) <> (User.tupled, User.unapply)
}
val connectionUrl = "jdbc:postgresql://localhost/slick?user=slick&password=slick"
Database.forURL(connectionUrl, driver = "org.postgresql.Driver") withSession {
implicit session =>
val users = TableQuery[Users]
// SELECT * FROM users
users.list foreach { row =>
println("user with id " + row._1 + " has username " + row._2)
}
// SELECT * FROM users WHERE username='john'
users.filter(_.username === "john").list foreach { row =>
println("user whose username is 'john' has id "+row._1)
}
}
Когда я создал ту же программу в затмении-язя лестницу, программа прекрасно работает и получает результат.
Является ли это существующей проблемой или мне что-то не хватает на моей стороне?
Мне кажется, что на самом деле это экземпляр пользователя. Поэтому '._1' должно быть просто' .id', а '._2' должно быть' .username'. Я понятия не имею, почему это работало бы в Eclipse. – colinjwebb