Scala Slick:在多列上使用groupBy的例外情况

时间:2014-12-01 17:05:32

标签: mysql scala slick-2.0

我正在使用带有slick 2.1的MySQL。 我有一个表UsersCars存储用户拥有的汽车,garages存储汽车的信息,表User_contact存储联系人用户的详细信息。

我希望使用他的ID,联系方式以及他拥有的汽车和车库的数量来获取用户信息。为此,我写了以下代码:


user.filter( _ .id === id).leftJoin(cars).on {
      case (user, car) => user.id === car.userId
    }.leftJoin(garage).on {
      case ((_, car), garage) => car.id === garage.carId
    }.leftJoin(userContacts).on {
      case (((user, _), _), contact) => user.id === contact.userId
    }.groupBy { case (((user, _), _ ), contact) => (user, contact) }.map {
      case ((user, contact), usrGroup) => (usr.id, usrGroup.map { case (((_, cars), _), _ ) => cars.id }.length, usrGroup.map { case (((_, _), garage), _) => garage.id }.length, contact)
    }
这导致

Execution exception[[SlickException: No type for symbol s44 found in {description: Option[$anon$1/VARCHAR(254)], first_name: Option[$anon$1/VARCHAR(254)], timezone_code: Option[$anon$1/VARCHAR(254)], profile_id: Option[Long/BIGINT], id: Int/INTEGER, dob: Option[Date/DATE], gender: Option[$anon$1/VARCHAR(254)], email_id: $anon$1/VARCHAR(254), inset: Option[$anon$1/VARCHAR(254)], last_name: Option[$anon$1/VARCHAR(254)], created_time: Timestamp/TIMESTAMP}]]
 在运行时。有人可以帮助指出可能的原因吗?它工作得很好,如果我只按user分组,但如果我添加contact字段则不行。

0 个答案:

没有答案