如何在Slick Query中使用 yield ?所以想象我有这样的代码
def rolesQuery(owner_id: UUID) = for {
(role, rel) <- Roles innerJoin AbilitiesMapping on (_.id === _.obj_id) if rel.owner_id === owner_id.bind
} yield role
我这样使用
val rolesQuery: lifted.Query[Roles.type, Role] = DBManager.rolesQuery(user_id)
rolesQuery.foreach((role: Role) => {
println(modifiedRole(role))
})
但是如果我想用修改后的角色生成另一个容器怎么办?我试过这个
val lst = for (role <- rolesQuery)
yield modifiedRole(role)
但它返回WrappingQuery而lst
不是实际的案例类对象。我看到有mapResults
方法,但它返回UnitInvoker类型的对象而不是Role
-s的容器
我应该怎么办 ?我应该只调用.list()
Query 对象吗?