为啥我无法使用 GO 客户端在我的 prisma 查询中获取相关字段?

Posted

技术标签:

【中文标题】为啥我无法使用 GO 客户端在我的 prisma 查询中获取相关字段?【英文标题】:why I cannot fetch related fields on my prisma query with my GO client?为什么我无法使用 GO 客户端在我的 prisma 查询中获取相关字段? 【发布时间】:2020-03-07 08:26:06 【问题描述】:

我是 Prisma 的新手,但到目前为止,我设法使用 graphql 进行查询和映射,但后来我注意到我没有获取全部信息。

这就是我所拥有的。

我有一张名为 Highlight 的表格

该表与 HighlightItems 有关系(即获取 postId、投票数等的包装器)

所以我映射了我的棱镜对象并且似乎正在工作......

我的 datamodel.prisma 中有这个

type Highlight 
    id: UUID! @id
    highlightId: String! @unique
    createdAt: DateTime! @createdAt
    updatedAt: DateTime! @updatedAt
    highlightItems: [HighlightItem!]! 
      @relation(
        link: TABLE
        name: "HighlightItemByHighlight"
        onDelete: CASCADE
      )

在我的 HighlightItem 处

type HighlightItem 
    id: UUID! @id
    createdAt: DateTime! @createdAt
    updatedAt: DateTime! @updatedAt
    lastComment: String ....

我能够生成棱镜模型并使用生成的突变:

mutation 
  createHighlight(....

我可以通过以下查询直接查询 prismadb:

query 
  highlights
    highlightId, highlightItemsid
  

现在我在使用 GO 解析器时遇到了问题

当我这样做时:

func (r *queryResolver) Highlights(ctx context.Context, first, last *int, before, after, search *string, input string, input2 string ) (*models.Highlights, error) 


    allHighligts, err := prisma.Instance.Highlights(
        &prisma.HighlightsParams

        ).Exec(ctx)
       ....

然后我意识到我无法获得HighlightItems 通过突出显示,检查了 prisma 客户端上的 GO 文档,它应该使用"fluent API"

https://www.prisma.io/docs/prisma-client/basic-data-access/reading-data-GO-go05/#relations

但到目前为止我无法获取它们,知道我做错了什么吗?

【问题讨论】:

【参考方案1】:

这个问题可能与变量名的大写有关。变量首字母大写可以吗?

【讨论】:

变量大写是什么意思? allHighlights var?? 不,我的意思是模型为type HighlightItem Id: UUID! @id CreatedAt: DateTime! @createdAt UpdatedAt: DateTime! @updatedAt LastComment: String ....

以上是关于为啥我无法使用 GO 客户端在我的 prisma 查询中获取相关字段?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 prisma 中定义接口?

使用 MongoDB API 无法使用 Prisma 和 CosmosDB 进行更新

Prisma.js:我们发现无法执行的更改

无法生成 Prisma 客户端,outputDir.endsWith 不是函数

我可以在不使用 prisma 的情况下在我的 graphQL 服务器中使用 MongoDB 吗?

prisma introspect 生成无效模型