我的数据模型由用户组成。用户可以有多个文件夹,文件夹可以包含多个帐户。
我想运行一个一次性返回上述所有信息的查询。
使用文件夹返回用户的查询如下所示:
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
。
提前致谢
弗洛
答案 0 :(得分:1)
我认为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))
)