我的应用程序中的实体类如下。
@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类在接口和联合类型中进行反向查找。
答案 0 :(得分:0)
在GraphQL中,您需要使用类型定义实体/文档。
请为您的问题找到以下类型定义:
type User{
userId :Long
phoneNumbers :[PhoneNumber]
}
type PhoneNumber{
phoneid : Long
PhoneNo : String
user: User
}