scala - Slick 3.0.0 升级 - 使用通用列类型的默认投影

标签 scala upgrade slick

我有一个表定义,其中包含在 Slick 2.1.0 中工作的通用列,但无法使其在 3.0.0 中工作,下面是表结构的详细信息。

abstract class SomeTable[V](tag: Tag, schemaName: String, tableName: String)
extends Table[(String, Int, Date, Timestamp, V)](tag, Some(schemaName), tableName) {

  def entityKey = column[String]("ENTITY_KEY")

  def someId = column[Int]("SOME_ID")

  def someDate = column[Date]("SOME_DATE")

  def someTime = column[Timestamp]("SOME_TIME")

  def someValue: Rep[V]

  def * = (entityKey, someId, someDate, someTime, someValue)
}

错误详情-

[error]  found   : (slick.lifted.Rep[String], slick.lifted.Rep[Int],    slick.lifted.Rep[java.sql.Date], slick.lifted.Rep[java.sql.Timestamp], slick.lifted.Rep[V])

[error]  required: slick.lifted.ProvenShape[(String, Int, java.sql.Date, java.sql.Timestamp, V)]

我认为错误的原因是“someValue”,它是通用类型,无法解析为 ProvenShape。

请让我知道解决此错误的任何建议。谢谢。

最佳答案

我有同样的问题,并且能够通过更改为来编译代码:

abstract class SomeTable[V](tag: Tag, schemaName: String, tableName: String)
extends Table[(String, Int, Date, Timestamp, V)](tag, Some(schemaName), tableName) {

  def entityKey = column[String]("ENTITY_KEY")

  def someId = column[Int]("SOME_ID")

  def someDate = column[Date]("SOME_DATE")

  def someTime = column[Timestamp]("SOME_TIME")

  def someValue: Rep[V]

  def *: ProvenShape[(String, Int, Date, Timestamp, V)] = proveShapeOf(entityKey, someId, someDate, someTime, someValue)
}

关于scala - Slick 3.0.0 升级 - 使用通用列类型的默认投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30595421/

相关文章:

kubernetes - 如何将 kubernetes 从 v1.10.0 升级到 v1.10.11

java - 哪个tomcat版本适合java 8

ubuntu - Ansible - 在没有提示的情况下进行发布升级

oop - 从具有 Id 的数据库中获取对象时,是否使用 Option 作为结果?

scala - Scala Slick,仅在不存在的情况下如何创建模式

templates - Play 框架 Scala 模板中的“匹配”导致编译错误

scala - 如何用Spray上传图片?

scala - 以更不可变的方式解决此练习的更好方法是什么?

java - JVM 会阻止尾调用优化吗?

scala - 在 Slick 中使用类型映射列进行查询