1

我正在与 Sangria 和 Slick 建立多对多的关系。我有 3 个对象:角色、权限和角色权限(映射表)

case class Role(id: Long, name: String)
case class Permission(id: Long, name: String)
case class RolePermission(id: Long, roleId: Long, permissionId: Long)

到目前为止,我想出了如何定义关系:

val permissionsByRoleId = Relation[Permission, (RolePermission, Permission), Long]("permissionsByRoleId", tmp ⇒ Seq(tmp._1.roleId), _._2)

我不知道如何定义fetcher以及如何将正确的字段添加到角色架构,以便我可以检索通过中间表传递的角色权限。

有什么帮助吗?

4

1 回答 1

2

您必须Relation为两个相关实体定义类型。对 StackOverflow 的简短评论并不容易回答,但我已经在我的博客文章中解释了这种关系:https ://scalac.io/akka-http-sangria-graphql-backend#implementing-many-to-many - 关系我希望它有帮助..

于 2020-02-14T08:39:31.193 回答