1

我的数据模型由用户组成。一个用户可以有多个文件夹,一个文件夹可以包含多个帐户。

我想运行一个查询,一次返回所有上述信息。

返回带有文件夹的用户的查询如下所示:

val usersWithFolder = from(MySchema.users, MySchema.folders)((u, f) =>
                         where(u.idField === f.userId) select ((u, f)))

我想要这样的查询:

join(MySchema.users, MySchema.folders.leftOuter, MySchema.accounts.leftOuter)((u, f, a) =>
                         select(u, f, a)
                         on (u.idField === f.map(_.userId), ???))

如何将帐户映射到文件夹?我不能使用f.idField === a.map(_.folderId),因为它看起来像是f一个List.

提前致谢

弗洛

4

1 回答 1

2

我认为那f将是一个Option,所以这样的事情应该可以工作:

join(MySchema.users, 
  MySchema.folders.leftOuter, 
  MySchema.accounts.leftOuter)((u, f, a) =>
    select(u, f, a)
    on (u.idField === f.map(_.userId), 
      f.map(_.idField) === a.map(_.folderId))
  )
于 2013-06-21T21:09:19.777 回答