Tôi có lỗi biên dịch Scala mà tôi không thể tìm thấy bất kỳ thông tin nào. Tôi đang sử dụng trơn 3.0 và đang nhận được một lỗi biên dịch của~ không phải là thành viên của slick.lifted.Rep [Tùy chọn [Int]]
value ~ is not a member of slick.lifted.Rep[Option[Int]]
Tôi tin rằng vấn đề này liên quan đến cách tôi đang sử dụng một lựa chọn để đại diện cho trường ID của tôi.
Tôi đã thử thêm id.?
vào trường id như được đề xuất trong this answer nhưng tôi vẫn nhận được lỗi biên dịch trong cùng một tĩnh mạch. Có bất cứ điều gì thay đổi trong slick 3.0?
Mã của tôi là như sau:
import slick.driver.H2Driver.api._
import scala.concurrent.ExecutionContext.Implicits.global
case class Recipe(id: Option[Int] = None, name: String, instructions: String, ingredients: String)
object AddFixtures {
class Recipes(tag: Tag) extends Table[Recipe](tag, "recipe") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name")
def instructions = column[String]("instructions")
def ingredients = column[String]("ingredients")
def * = id ~ name ~ instructions ~ ingredients <> (Recipe, Recipe.unapply _)
}
val recipes = TableQuery[Recipes]
val setup = DBIO.seq(
recipes.schema.create,
recipes += Recipe(None, "Chicken with Avocado", "Mix it up", "Chicken, Avocado")
)
def apply() = {
val db = Database.forConfig("h2mem1")
try db.run(setup)
finally db.close
}
}
Thử mã mới, tôi đã thử nghiệm và biên dịch này, cũng có vấn đề với Tùy chọn, tôi không chắc chắn nếu bạn thực sự cần điều này – anquegi
Thay đổi dòng đó và thêm Tùy chọn [Int] vào cột id HOẶC thêm.? vào trường id và không thêm tùy chọn hoạt động. – GoldenFish
Cảm ơn, tôi cũng đã thêm tùy chọn thứ ba vào câu trả lời. – anquegi