another question answers how define one-to-many association, defining method in "one" case class (directorate) returns seq of "many" class (servicearea). doesn't address "bidirectional" part of question.
using example, i'd see how traverse association other direction. instead of
case class servicearea(areacode: string, dircode: string, name: string) i'd see
case class servicearea(areacode: string, directorate: directorate, name: string) is possible slick? because when try like
object serviceareas ... def * = areacode ~ directorate ~ name <> (servicearea, servicearea.unapply _) it fails compile, not finding implicit value evidence parameter of type typemapper[foreignkeyquery[serviceareas,servicearea]].
you have adjust way of thinking little. slick handles composition , execution of queries, mentioned in comment, it's not orm (thank goodness).
have @ code referenced:
case class servicearea(areacode: string, dircode: string, name: string) object serviceareas extends table[servicearea]("service_areas") { def areacode = column[string]("areae_code", o.primarykey) def dircode = column[string]("directorate_code") def name = column[string]("name") def directorate = foreignkey("dir_fk", dircode, directorates)(_.dircode) def * = areacode ~ dircode ~ name <> (servicearea, servicearea.unapply _) } the link directorate defined navigatable foreign key.
so can write query this:
def directorates = { area <- parameters[string] sa <- serviceareas if sa.areacode === area dir <- sa.directorate } yield dir which yield directorate each match.
Comments
Post a Comment