使用Squeryl ORM和Scala。我第一次做了一个使用分组的JOIN语句。不可否认,我无法弄清楚如何开始迭代内容。
这是JOIN:
join(DB.jobs, DB.users.leftOuter, DB.clients.leftOuter, DB.projects.leftOuter)((j,u,c,p) =>
where((j.teamId === teamId)
and (j.startTime > yesterdayBegin))
groupBy(j.userId)
on(j.userId === u.map(_.id), j.clientId === c.map(_.id), j.projectId === p.map(_.id)))
如何打印出其内容?
我试过了:
Job.teamTimeline( teamId(request) ).map{ user => Map(
"name" -> user._1.map(_.name).getOrElse("Pending")
)}
但得到了编译器错误:
value _1 is not a member of org.squeryl.dsl.Group[Option[org.squeryl.PrimitiveTypeMode.LongType]]
答案 0 :(得分:0)
Max the great能够帮助发送邮件列表。我几乎有正确的语法。
他的回答:
替换:
groupBy(j.userId)
由:
groupBy(j.userId, j.name)
然后:
timelineLookup.map{ group => Map(
"name" -> group.key._2.getOrElse("Pending")
)}
来源:https://groups.google.com/forum/?fromgroups#!topic/squeryl/sJ05He-4F3I