【问题标题】:Write graphql schema which is equivalent pojo/entity/ class编写等效于 pojo/entity/ 类的 graphql 模式
【发布时间】:2019-08-30 13:23:03
【问题描述】:

我的应用程序中的实体类如下。

@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
}

在上述实体类中。我有两种情况:

  1. 一对多关系用户有很多电话号码(电话号码列表)

  2. 多对一关系多个电话号码属于一个用户

我需要双向获取数据。我如何编写 user.graphqls 和 phonenumber.graphqls 文件来表示这些实体和 graphqlseolvers。我无法获取数据。我遇到了以下异常

类型 java.util.Set 不能映射到 GraphQL 类型!由于 GraphQL-Java 在运行时处理已擦除的类型,因此只有非参数化类可以表示 GraphQL 类型。

这允许通过接口和联合类型中的 java 类进行反向查找。

【问题讨论】:

    标签: java spring-boot spring-data-jpa graphql


    【解决方案1】:

    在 GraphQL 中,您需要使用类型定义实体/文档。
    请为您的问题找到以下类型定义:

    type User{
     userId :Long
     phoneNumbers :[PhoneNumber]
    }
    
    type PhoneNumber{
     phoneid :  Long
     PhoneNo  : String
     user: User
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2020-10-26
      • 2015-12-08
      • 2018-09-27
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      相关资源
      最近更新 更多