Slick Join 左连接 Option 列

7

我正在尝试使用Slick连接多个表,并且在连接可选值时遇到了困难。

我的模型从Rails迁移而来,用户拥有单独的资料档案,其中可能包含地址(可选)。

如何使用Slick查询?

当前代码:

val query = for {
  (((((dbUser, dbUserProfile), dbAddress), dbCountry), dbUserLoginInfo), dbLoginInfo) <-
  users.filter(_.id === userID)
    .join(userProfiles).on(_.id === _.id)
    .joinLeft(addresses).on(_._2.addressId === _.id)
    .joinLeft(countries).on(_._2.get.countryId === _.id)
    .joinLeft(userLoginInfos).on(_._1._1._1.id === _.userId)
    .joinLeft(loginInfos).on(_._2.get.loginInfoId === _.id)
} yield (dbUser, dbUserProfile, dbAddress, dbCountry, dbLoginInfo)
1个回答

18

试一下这个:

.joinLeft(countries).on(_._2.map(_.countryId) === _.id)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接