Slick 3.0.0 upgrade - default project using generic column type

I have a table definition with a shared column working in Slick 2.1.0 but cannot get it to work in 3.0.0, more on table structure below.

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 details -

[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)]

      

I believe the cause of the error is "someValue" which is a generic type and cannot be resolved in the ProvenShape.

Please let me know any suggestions for fixing this error. Thank.

+3


source to share


1 answer


I had the same problem and managed to get the code to compile by changing to:



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)
}

      

+1


source







All Articles