我正在处理Sangria和Slick的多对多关系。我有3个对象: Role,Permission和RolePermission (一个映射表)
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,也不知道如何将正确的字段添加到角色模式中,以便检索通过中间表传递的角色权限。
有什么帮助吗?
发布于 2020-02-14 16:39:31
您必须为两个相关实体定义Relation类型。在StackOverflow上用简短的评论来回答并不容易,但我已经在我的博客文章中解释了这种关系:https://scalac.io/akka-http-sangria-graphql-backend#implementing-many-to-many-relation我希望它能有所帮助。
https://stackoverflow.com/questions/60197953
复制相似问题