Я понимаю, что Slick не ORM и поэтому не понимает отношений. Учитывая это, слабые классы таблиц в значительной степени отражают базовые таблицы базы данных, например. они будут включать свойство addressId, а не свойство Address. Все это имеет смысл для меня.Зачем использовать классы с Slick?
Я не понимаю, почему я также использовал бы класс case, если класс case также должен отражать таблицу? Учитывая, типичный человек, Адрес пример, как я понимаю, я не могу легко использовать:
case class Person(id: Option[Int], name: String, address: Option[Address])
, потому что пятно не может отображать от AddressID к опции [Адрес] т.е.
class PersonTable(tag: Tag) extends Table[Person](tag, "PERSON") {
def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name")
def addressId = column[Int]("address_id")
def * = (id, name, addressId) <> (Person.tupled, Person.unapply)
}
так что я необходимо создать класс класса Person, который выглядит так:
case class Person(id: Option[Int], name: String, address: Option[Int])
который является почти зеркалом PersonTable?