【发布时间】:2013-03-12 21:28:03
【问题描述】:
我有一张这样的桌子:
object Addresses extends Table[AddressRow]("address") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def street = column[String]("street")
def number = column[String]("number")
def zipcode = column[String]("zipcode")
def city = column[String]("city")
def country = column[String]("country")
def geoLocationId = column[Int]("geo_location_id", O.Nullable)
// Foreign keys.
def geoLocation = foreignKey("fk_geo_location", geoLocationId, GeoLocations)(_.id)
// Rest of my code.
...
}
我的案例类在哪里:
case class AddressRow(
id: Option[Int] = None,
street: String,
number: String,
zipcode: String,
city: String,
country: String,
geoLocationId: Option[Int])
你注意到 geoLocation 是一个可选的外键......
我在我的外键定义中找不到任何方式来描述这个“可选”。
我试过这样:
def geoLocation = foreignKey("fk_geo_location", geoLocationId.asColumnOf[Option[Int]], GeoLocations)(_.id)
但我收到:
原因:scala.slick.SlickException:无法使用列应用 外键约束中的函数强制转换(仅命名列是 允许)
有人有建议吗?
【问题讨论】: