【问题标题】:Playframework Scala play-slick3-example project: JdbcSQLException: Column "TEST" not foundPlayframework Scala play-slick3-example 项目:JdbcSQLException:找不到列“TEST”
【发布时间】:2016-10-05 08:05:14
【问题描述】:

我下载了一个带有 Play Framework 2.5 和 Slick 3.1 的入门应用程序,git here

当我向Project.scala 添加一个名为“test”的简单列时。我收到此错误:

[JdbcSQLException: Column "TEST" not found; SQL statement:
select "ID", "NAME", "TEST" from "PROJECT" [42122-187]]

我只是通过添加参数 test 和带有函数 test、* 和 ? 的 ProjectsTable 类来更改 Project 案例类:

case class Project(id: Long, name: String, test: String)


private class ProjectsTable(tag: Tag) extends Table[Project](tag, "PROJECT") {

  def id = column[Long]("ID", O.AutoInc, O.PrimaryKey)
  def name = column[String]("NAME")
  def test = column[String]("TEST")

  def * = (id, name, test) <> (Project.tupled, Project.unapply)
  def ? = (id.?, name.?, test.?).shaped.<>({ r => import r._; _1.map(_ => Project.tupled((_1.get, _2.get, _3.get))) }, (_: Any) => throw new Exception("Inserting into ? projection not supported."))

}

还有函数:create

def create(name: String): Future[Long] = {
  val project = Project(0, name, "d")
  db.run(Projects returning Projects.map(_.id) += project)
}

非常感谢您的帮助!

【问题讨论】:

    标签: scala jdbc playframework h2 slick


    【解决方案1】:

    通过将字段 test 添加到 ProjectsTable 模型,您告诉 Slick 数据库表 PROJECT 有一个名为 test 的列 - 但表 PROJECT 没有名为 test 的列.

    您可以在此处查看 SQL 架构:https://github.com/nemoo/play-slick3-example/blob/6c122970d7506bedb9230e3a31c30a5c7e27e93b/conf/evolutions/default/1.sql

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多