java - 编写等效于 pojo/entity/ 类的 graphql 模式
问题描述
我的应用程序中的实体类如下。
@Entity
public class User{
@Id
@Column(name = "userId")
Long userId;
@Column(name = "name")
@OneToMany(fetch = FetchType.EAGER, mappedBy="user", cascade = cascadeType.ALL)
@JsonIgnoreProperties("user")
String name;
List<PhoneNumber> phoneNumbers;
//setters ans getters
}
@Entity
Public class PhoneNumber{
@Id
@Column
Long phoneid;
String PhoneNo;
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
@JsonIgnoreProperties("phoneNumbers")
User user;
//setters and getters
}
在上述实体类中。我有两种情况:
一对多关系用户有很多电话号码(电话号码列表)
多对一关系多个电话号码属于一个用户
我需要双向获取数据。我如何编写 user.graphqls 和 phonenumber.graphqls 文件来表示这些实体和 graphqlseolvers。我无法获取数据。我遇到了以下异常
类型 java.util.Set 不能映射到 GraphQL 类型!由于 GraphQL-Java 在运行时处理已擦除的类型,因此只有非参数化类可以表示 GraphQL 类型。
这允许通过接口和联合类型中的 java 类进行反向查找。
解决方案
在 GraphQL 中,您需要使用类型定义实体/文档。
请为您的问题找到以下类型定义:
type User{
userId :Long
phoneNumbers :[PhoneNumber]
}
type PhoneNumber{
phoneid : Long
PhoneNo : String
user: User
}
推荐阅读
- php - wordpress + nginx + django:错误太多重定向
- ghc - 许多损坏的haskell包
- mysql - SQLSTATE[HY000] [2002] 在 GCP 上部署时连接被拒绝
- python - 我正在尝试使用 sqlalchemy 连接到 MySQL,我得到退出代码 1
- python - 图像弹出而不是显示在 jupyter 笔记本中
- python - 这个库是否假设谷歌电子表格只有一张?
- python - Scikit Learn 中估计器的丰富视觉表示 - 获取文本而不是图表
- node.js - 如何从异步函数的返回中获取第一个对象值?
- typescript - 当配置中未提及 d.ts 文件时,typescript 是如何找到它的
- java - (Android 应用程序)有没有办法在 FirebaseRecyclerOptions 查询的 SnapshotParser 部分中从 Firebase 数据库中检索数据?